Tehokas 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.
1234567891011121314151617import 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))
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain what each step in the pipeline is doing?
What is the difference between OneHotEncoder and OrdinalEncoder?
Why do we use SimpleImputer with the 'most_frequent' strategy here?
Awesome!
Completion rate improved to 3.13
Tehokas 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.
1234567891011121314151617import 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))
Kiitos palautteestasi!