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 enten ved hjælp af Pipeline-klassens konstruktør eller funktionen make_pipeline fra modulet sklearn.pipeline. Dette kursus fokuserer 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 imidlertid kalder .fit_transform(X)-metoden 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().
Opbygning af en pipeline ved brug af 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, anvendes 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