Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Tehokas Datan Esikäsittely Pipelinejen Avulla | Putkistot
Koneoppimisen Perusteet Scikit-learnilla

bookTehokas Datan Esikäsittely Pipelinejen Avulla

Kun sarakkeita voidaan muuntaa erikseen käyttämällä make_column_transformer-funktiota, seuraava vaihe on rakentaa putkia. Putki on säiliö, joka järjestää esikäsittelyvaiheet ja soveltaa niitä peräkkäin.

Putki Scikit-learnissa voidaan luoda joko Pipeline-luokan konstruktorilla tai make_pipeline-funktiolla, joka löytyy sklearn.pipeline-moduulista. Tässä kurssissa keskitytään make_pipeline-funktioon, koska sen käyttö on yksinkertaisempaa.

Sinun tarvitsee vain välittää kaikki muuntimet funktion argumentteina. Putkien luominen on näin helppoa.

Kuitenkin, kun kutsut .fit_transform(X)-metodia Pipeline-oliolle, se soveltaa .fit_transform(X) jokaiseen putken sisällä olevaan muuntimeen. Jos haluat käsitellä joitakin sarakkeita eri tavalla, sinun kannattaa käyttää ColumnTransformer-muunninta ja välittää se make_pipeline()-funktiolle.

Rakenna putki käyttäen samaa tiedostoa kuin edellisessä luvussa. Putken tulee sisältää kooderit kategorisille ominaisuuksille yhdessä SimpleImputer-luokan kanssa. Koska aineistossa on sekä nominaalisia että ordinaalisia ominaisuuksia, käytä ColumnTransformer-luokkaa niiden erilliseen käsittelyyn.

1234567891011121314151617
import pandas as pd from sklearn.compose import make_column_transformer from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder from sklearn.impute import SimpleImputer from sklearn.pipeline import make_pipeline df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/exams.csv') # Making a column transformer edu_categories = ['high school', 'some high school', 'some college', "associate's degree", "bachelor's degree", "master's degree"] ct = make_column_transformer( (OrdinalEncoder(categories=[edu_categories]), ['parental level of education']), (OneHotEncoder(), ['gender', 'race/ethnicity', 'lunch', 'test preparation course']), remainder='passthrough' ) # Making a Pipeline pipe = make_pipeline(ct, SimpleImputer(strategy='most_frequent')) print(pipe.fit_transform(df))
copy
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 3.13

bookTehokas Datan Esikäsittely Pipelinejen Avulla

Pyyhkäise näyttääksesi valikon

Kun sarakkeita voidaan muuntaa erikseen käyttämällä make_column_transformer-funktiota, seuraava vaihe on rakentaa putkia. Putki on säiliö, joka järjestää esikäsittelyvaiheet ja soveltaa niitä peräkkäin.

Putki Scikit-learnissa voidaan luoda joko Pipeline-luokan konstruktorilla tai make_pipeline-funktiolla, joka löytyy sklearn.pipeline-moduulista. Tässä kurssissa keskitytään make_pipeline-funktioon, koska sen käyttö on yksinkertaisempaa.

Sinun tarvitsee vain välittää kaikki muuntimet funktion argumentteina. Putkien luominen on näin helppoa.

Kuitenkin, kun kutsut .fit_transform(X)-metodia Pipeline-oliolle, se soveltaa .fit_transform(X) jokaiseen putken sisällä olevaan muuntimeen. Jos haluat käsitellä joitakin sarakkeita eri tavalla, sinun kannattaa käyttää ColumnTransformer-muunninta ja välittää se make_pipeline()-funktiolle.

Rakenna putki käyttäen samaa tiedostoa kuin edellisessä luvussa. Putken tulee sisältää kooderit kategorisille ominaisuuksille yhdessä SimpleImputer-luokan kanssa. Koska aineistossa on sekä nominaalisia että ordinaalisia ominaisuuksia, käytä ColumnTransformer-luokkaa niiden erilliseen käsittelyyn.

1234567891011121314151617
import pandas as pd from sklearn.compose import make_column_transformer from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder from sklearn.impute import SimpleImputer from sklearn.pipeline import make_pipeline df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/exams.csv') # Making a column transformer edu_categories = ['high school', 'some high school', 'some college', "associate's degree", "bachelor's degree", "master's degree"] ct = make_column_transformer( (OrdinalEncoder(categories=[edu_categories]), ['parental level of education']), (OneHotEncoder(), ['gender', 'race/ethnicity', 'lunch', 'test preparation course']), remainder='passthrough' ) # Making a Pipeline pipe = make_pipeline(ct, SimpleImputer(strategy='most_frequent')) print(pipe.fit_transform(df))
copy
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3
some-alt