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

Kolomtransformer

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

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 laten, stel remainder='passthrough' in.

Neem bijvoorbeeld het bestand exams.csv. Dit 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())

Met ColumnTransformer kan nominale data worden getransformeerd met OneHotEncoder en ordinale data met OrdinalEncoder in één 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))

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

question mark

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

Selecteer het correcte antwoord

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.

Sectie 3. Hoofdstuk 2
some-alt