Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Effektiv Dataprosessering med Pipelines | Pipeliner
ML-Introduksjon med Scikit-learn

bookEffektiv Dataprosessering med Pipelines

Med muligheten til å transformere kolonner separat ved hjelp av funksjonen make_column_transformer, er neste steg å bygge pipelines. En pipeline er en beholder som organiserer forhåndsprosesseringssteg og anvender dem sekvensielt.

En pipeline i Scikit-learn kan opprettes enten ved å bruke Pipeline-klassekonstruktøren eller funksjonen make_pipeline fra modulen sklearn.pipeline. Dette kurset vil fokusere på make_pipeline, siden den er enklere å bruke.

Du trenger bare å sende alle transformere som argumenter til en funksjon. Å lage pipelines er så enkelt.

Når du derimot kaller metoden .fit_transform(X)Pipeline-objektet, anvender den .fit_transform(X)hver transformer inne i pipelinen, så hvis du ønsker å behandle noen kolonner annerledes, bør du bruke en ColumnTransformer og sende den til make_pipeline().

Bygg en pipeline ved å bruke den samme filen som i forrige kapittel. Pipen skal inkludere enkodere for kategoriske variabler sammen med SimpleImputer. Siden datasettet inneholder både nominelle og ordinale variabler, bruk en ColumnTransformer for å behandle 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
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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 Dataprosessering med Pipelines

Sveip for å vise menyen

Med muligheten til å transformere kolonner separat ved hjelp av funksjonen make_column_transformer, er neste steg å bygge pipelines. En pipeline er en beholder som organiserer forhåndsprosesseringssteg og anvender dem sekvensielt.

En pipeline i Scikit-learn kan opprettes enten ved å bruke Pipeline-klassekonstruktøren eller funksjonen make_pipeline fra modulen sklearn.pipeline. Dette kurset vil fokusere på make_pipeline, siden den er enklere å bruke.

Du trenger bare å sende alle transformere som argumenter til en funksjon. Å lage pipelines er så enkelt.

Når du derimot kaller metoden .fit_transform(X)Pipeline-objektet, anvender den .fit_transform(X)hver transformer inne i pipelinen, så hvis du ønsker å behandle noen kolonner annerledes, bør du bruke en ColumnTransformer og sende den til make_pipeline().

Bygg en pipeline ved å bruke den samme filen som i forrige kapittel. Pipen skal inkludere enkodere for kategoriske variabler sammen med SimpleImputer. Siden datasettet inneholder både nominelle og ordinale variabler, bruk en ColumnTransformer for å behandle 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
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3
some-alt