Effektiv Datapreprocessering med Pipelines
Med muligheden for at transformere kolonner separat ved hjælp af funktionen make_column_transformer, er næste skridt at opbygge pipelines. En pipeline er en container, der organiserer forbehandlingsskridt og anvender dem sekventielt.
En pipeline i Scikit-learn kan oprettes enten ved hjælp af Pipeline-klassens konstruktør eller funktionen make_pipeline fra modulet sklearn.pipeline. Dette kursus vil fokusere på make_pipeline, da det er lettere at anvende.
Det eneste, der kræves, er at videregive alle transformere som argumenter til en funktion. Oprettelse af pipelines er så enkelt.
Når du imidlertid kalder metoden .fit_transform(X) på Pipeline-objektet, anvender den .fit_transform(X) på hver transformer i pipelinen, så hvis du ønsker at behandle nogle kolonner anderledes, bør du bruge en ColumnTransformer og videregive den til make_pipeline().
Opbyg en pipeline ved at bruge den samme fil som i det forrige kapitel. Pipen skal inkludere kodere til kategoriske træk sammen med SimpleImputer. Da datasættet indeholder både nominelle og ordinale træk, skal du bruge en ColumnTransformer til at 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))
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Fantastisk!
Completion rate forbedret til 4.55
Effektiv Datapreprocessering med Pipelines
Stryg for at vise menuen
Med muligheden for at transformere kolonner separat ved hjælp af funktionen make_column_transformer, er næste skridt at opbygge pipelines. En pipeline er en container, der organiserer forbehandlingsskridt og anvender dem sekventielt.
En pipeline i Scikit-learn kan oprettes enten ved hjælp af Pipeline-klassens konstruktør eller funktionen make_pipeline fra modulet sklearn.pipeline. Dette kursus vil fokusere på make_pipeline, da det er lettere at anvende.
Det eneste, der kræves, er at videregive alle transformere som argumenter til en funktion. Oprettelse af pipelines er så enkelt.
Når du imidlertid kalder metoden .fit_transform(X) på Pipeline-objektet, anvender den .fit_transform(X) på hver transformer i pipelinen, så hvis du ønsker at behandle nogle kolonner anderledes, bør du bruge en ColumnTransformer og videregive den til make_pipeline().
Opbyg en pipeline ved at bruge den samme fil som i det forrige kapitel. Pipen skal inkludere kodere til kategoriske træk sammen med SimpleImputer. Da datasættet indeholder både nominelle og ordinale træk, skal du bruge en ColumnTransformer til at 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))
Tak for dine kommentarer!