Effektiv Datapreprocessering med Pipelines
Med muligheden for at transformere kolonner separat ved hjælp af funktionen make_column_transformer, er det 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 ved enten at bruge Pipeline-klassens konstruktør eller funktionen make_pipeline fra modulet sklearn.pipeline. Dette kursus vil fokusere på make_pipeline, da den er nemmere at anvende.
Du skal blot videregive alle transformere som argumenter til en funktion. Oprettelse af pipelines er så enkelt.
Når du dog 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().
Opret en pipeline ved at bruge den samme fil som i det forrige kapitel. Pipenlinen skal inkludere kodere til kategoriske funktioner sammen med SimpleImputer. Da datasættet indeholder både nominelle og ordinale funktioner, 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
Awesome!
Completion rate improved to 3.13
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 det 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 ved enten at bruge Pipeline-klassens konstruktør eller funktionen make_pipeline fra modulet sklearn.pipeline. Dette kursus vil fokusere på make_pipeline, da den er nemmere at anvende.
Du skal blot videregive alle transformere som argumenter til en funktion. Oprettelse af pipelines er så enkelt.
Når du dog 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().
Opret en pipeline ved at bruge den samme fil som i det forrige kapitel. Pipenlinen skal inkludere kodere til kategoriske funktioner sammen med SimpleImputer. Da datasættet indeholder både nominelle og ordinale funktioner, 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!