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

bookEffektiv 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 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)Pipeline-objektet, anvender den .fit_transform(X)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. 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.

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
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

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 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 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)Pipeline-objektet, anvender den .fit_transform(X)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. 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.

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
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3
some-alt