Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Effektiv Datapreprocessering med Pipelines | Pipelines
ML-introduktion Med Scikit-learn

bookEffektiv Datapreprocessering med Pipelines

Med möjligheten att transformera kolumner separat med funktionen make_column_transformer är nästa steg att bygga pipelines. En pipeline är en behållare som organiserar förbehandlingssteg och tillämpar dem sekventiellt.

En pipeline i Scikit-learn kan skapas antingen med konstruktorn för klassen Pipeline eller funktionen make_pipeline från modulen sklearn.pipeline. Denna kurs fokuserar på make_pipeline, eftersom den är enklare att använda.

Du behöver bara skicka alla transformers som argument till en funktion. Att skapa pipelines är så enkelt.

När du däremot anropar metoden .fit_transform(X)Pipeline-objektet, tillämpar den .fit_transform(X)varje transformer i pipelinen, så om du vill behandla vissa kolumner annorlunda bör du använda en ColumnTransformer och skicka den till make_pipeline().

Bygg en pipeline med samma fil som i föregående kapitel. Pipen ska inkludera enkodrar för kategoriska variabler tillsammans med SimpleImputer. Eftersom datasettet innehåller både nominella och ordnade variabler, använd en ColumnTransformer för att bearbeta dem separat.

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
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

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

bookEffektiv Datapreprocessering med Pipelines

Svep för att visa menyn

Med möjligheten att transformera kolumner separat med funktionen make_column_transformer är nästa steg att bygga pipelines. En pipeline är en behållare som organiserar förbehandlingssteg och tillämpar dem sekventiellt.

En pipeline i Scikit-learn kan skapas antingen med konstruktorn för klassen Pipeline eller funktionen make_pipeline från modulen sklearn.pipeline. Denna kurs fokuserar på make_pipeline, eftersom den är enklare att använda.

Du behöver bara skicka alla transformers som argument till en funktion. Att skapa pipelines är så enkelt.

När du däremot anropar metoden .fit_transform(X)Pipeline-objektet, tillämpar den .fit_transform(X)varje transformer i pipelinen, så om du vill behandla vissa kolumner annorlunda bör du använda en ColumnTransformer och skicka den till make_pipeline().

Bygg en pipeline med samma fil som i föregående kapitel. Pipen ska inkludera enkodrar för kategoriska variabler tillsammans med SimpleImputer. Eftersom datasettet innehåller både nominella och ordnade variabler, använd en ColumnTransformer för att bearbeta dem separat.

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
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3
some-alt