Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Kolomtransformator | Pipelines
Quizzes & Challenges
Quizzes
Challenges
/
Introductie tot Machine Learning met Python

bookKolomtransformator

Bij het aanroepen van .fit_transform(X) op een Pipeline, wordt elke transformer toegepast op alle kolommen, wat niet altijd wenselijk is. Sommige kolommen vereisen verschillende encoders — bijvoorbeeld, OrdinalEncoder voor ordinale kenmerken en OneHotEncoder voor nominale kenmerken. ColumnTransformer lost dit op door je toe te staan verschillende transformers aan specifieke kolommen toe te wijzen met behulp van make_column_transformer.

make_column_transformer accepteert tuples van (transformer, [columns]). Bijvoorbeeld, het toepassen van OrdinalEncoder op 'education' en OneHotEncoder op 'gender':

ct = make_column_transformer(
   (OrdinalEncoder(), ['education']),
   (OneHotEncoder(), ['gender']),
   remainder='passthrough'
)
Note
Opmerking

remainder bepaalt wat er gebeurt met niet-gespecificeerde kolommen. Standaard: 'drop'. Om alle andere kolommen ongewijzigd te behouden, stel je remainder='passthrough' in.

Neem bijvoorbeeld het bestand exams.csv. Het bevat meerdere nominale kolommen ('gender', 'race/ethnicity', 'lunch', 'test preparation course') en één ordinale kolom, 'parental level of education'.

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/exams.csv') print(df.head())
copy

Met behulp van ColumnTransformer kan nominale data worden getransformeerd met OneHotEncoder en ordinale data met OrdinalEncoder in één enkele stap.

12345678910111213
from sklearn.compose import make_column_transformer from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder 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' ) print(ct.fit_transform(df))
copy

De ColumnTransformer is zelf een transformer, dus biedt het de standaardmethoden .fit(), .fit_transform() en .transform() aan.

question mark

Stel dat je een dataset hebt met de kenmerken 'education', 'income', 'job'. Wat gebeurt er met de kolom 'income' na het uitvoeren van de volgende code? (Let op dat het argument remainder niet is gespecificeerd)

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 2

Vraag AI

expand

Vraag AI

ChatGPT

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

Awesome!

Completion rate improved to 3.13

bookKolomtransformator

Veeg om het menu te tonen

Bij het aanroepen van .fit_transform(X) op een Pipeline, wordt elke transformer toegepast op alle kolommen, wat niet altijd wenselijk is. Sommige kolommen vereisen verschillende encoders — bijvoorbeeld, OrdinalEncoder voor ordinale kenmerken en OneHotEncoder voor nominale kenmerken. ColumnTransformer lost dit op door je toe te staan verschillende transformers aan specifieke kolommen toe te wijzen met behulp van make_column_transformer.

make_column_transformer accepteert tuples van (transformer, [columns]). Bijvoorbeeld, het toepassen van OrdinalEncoder op 'education' en OneHotEncoder op 'gender':

ct = make_column_transformer(
   (OrdinalEncoder(), ['education']),
   (OneHotEncoder(), ['gender']),
   remainder='passthrough'
)
Note
Opmerking

remainder bepaalt wat er gebeurt met niet-gespecificeerde kolommen. Standaard: 'drop'. Om alle andere kolommen ongewijzigd te behouden, stel je remainder='passthrough' in.

Neem bijvoorbeeld het bestand exams.csv. Het bevat meerdere nominale kolommen ('gender', 'race/ethnicity', 'lunch', 'test preparation course') en één ordinale kolom, 'parental level of education'.

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/exams.csv') print(df.head())
copy

Met behulp van ColumnTransformer kan nominale data worden getransformeerd met OneHotEncoder en ordinale data met OrdinalEncoder in één enkele stap.

12345678910111213
from sklearn.compose import make_column_transformer from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder 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' ) print(ct.fit_transform(df))
copy

De ColumnTransformer is zelf een transformer, dus biedt het de standaardmethoden .fit(), .fit_transform() en .transform() aan.

question mark

Stel dat je een dataset hebt met de kenmerken 'education', 'income', 'job'. Wat gebeurt er met de kolom 'income' na het uitvoeren van de volgende code? (Let op dat het argument remainder niet is gespecificeerd)

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 2
some-alt