Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Efficiënte Gegevensvoorverwerking met Pipelines | Pipelines
ML-Introductie met Scikit-learn

bookEfficiënte Gegevensvoorverwerking met Pipelines

Met de mogelijkheid om kolommen afzonderlijk te transformeren met de functie make_column_transformer, is de volgende stap het bouwen van pipelines. Een pipeline is een container die preprocessingsstappen organiseert en deze achtereenvolgens toepast.

Een pipeline in Scikit-learn kan worden gemaakt met de constructor van de Pipeline-klasse of de functie make_pipeline uit de module sklearn.pipeline. In deze cursus ligt de focus op make_pipeline, omdat deze eenvoudiger toe te passen is.

Het enige wat nodig is, is het doorgeven van alle transformers als argumenten aan een functie. Pipelines maken is zo eenvoudig.

Wanneer echter de methode .fit_transform(X) wordt aangeroepen op het Pipeline-object, wordt .fit_transform(X) toegepast op elke transformer binnen de pipeline. Als bepaalde kolommen anders behandeld moeten worden, gebruik dan een ColumnTransformer en geef deze door aan make_pipeline().

Stel een pipeline samen met hetzelfde bestand als in het vorige hoofdstuk. De pipeline dient encoders voor categorische kenmerken te bevatten samen met SimpleImputer. Aangezien de dataset zowel nominale als ordinale kenmerken bevat, gebruik een ColumnTransformer om deze apart te verwerken.

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
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

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

bookEfficiënte Gegevensvoorverwerking met Pipelines

Veeg om het menu te tonen

Met de mogelijkheid om kolommen afzonderlijk te transformeren met de functie make_column_transformer, is de volgende stap het bouwen van pipelines. Een pipeline is een container die preprocessingsstappen organiseert en deze achtereenvolgens toepast.

Een pipeline in Scikit-learn kan worden gemaakt met de constructor van de Pipeline-klasse of de functie make_pipeline uit de module sklearn.pipeline. In deze cursus ligt de focus op make_pipeline, omdat deze eenvoudiger toe te passen is.

Het enige wat nodig is, is het doorgeven van alle transformers als argumenten aan een functie. Pipelines maken is zo eenvoudig.

Wanneer echter de methode .fit_transform(X) wordt aangeroepen op het Pipeline-object, wordt .fit_transform(X) toegepast op elke transformer binnen de pipeline. Als bepaalde kolommen anders behandeld moeten worden, gebruik dan een ColumnTransformer en geef deze door aan make_pipeline().

Stel een pipeline samen met hetzelfde bestand als in het vorige hoofdstuk. De pipeline dient encoders voor categorische kenmerken te bevatten samen met SimpleImputer. Aangezien de dataset zowel nominale als ordinale kenmerken bevat, gebruik een ColumnTransformer om deze apart te verwerken.

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
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 3
some-alt