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
Introductie tot Machine Learning met Python

Efficië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.

Pipeline-stappen

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

make_pipeline

Het enige wat nodig is, is om alle transformers als argumenten aan een functie door te geven. Pipelines maken is zo eenvoudig.

Wanneer je echter de methode .fit_transform(X) aanroept op het Pipeline-object, wordt .fit_transform(X) toegepast op elke transformer binnen de pipeline, dus als je sommige kolommen anders wilt behandelen, moet je een ColumnTransformer gebruiken en deze doorgeven aan make_pipeline().

Transformer workflow

Een pipeline opbouwen met hetzelfde bestand als in het vorige hoofdstuk. De pipeline bevat encoders voor categorische kenmerken samen met SimpleImputer. Omdat de dataset zowel nominale als ordinale kenmerken bevat, gebruik maken van 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))
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.

Sectie 3. Hoofdstuk 3
some-alt