Effektiv 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)
på Pipeline
-objektet, anvender den .fit_transform(X)
på 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.
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))
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Effektiv 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)
på Pipeline
-objektet, anvender den .fit_transform(X)
på 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.
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))
Takk for tilbakemeldingene dine!