Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära ColumnTransformer | Sektion
Grunder i Maskininlärning

bookColumnTransformer

När .fit_transform(X) anropas på en Pipeline tillämpas varje transformerare på alla kolumner, vilket inte alltid är önskvärt. Vissa kolumner kan kräva olika kodare — till exempel OrdinalEncoder för ordnade variabler och OneHotEncoder för nominella variabler. ColumnTransformer löser detta genom att låta dig tilldela olika transformerare till specifika kolumner med hjälp av make_column_transformer.

make_column_transformer accepterar tupler av (transformer, [columns]). Till exempel, tillämpa OrdinalEncoder'education' och OneHotEncoder'gender':

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

remainder styr vad som händer med ospecificerade kolumner. Standard: 'drop'. För att behålla alla andra kolumner oförändrade, ange remainder='passthrough'.

Till exempel, överväg filen exams.csv. Den innehåller flera nominala kolumner ('gender', 'race/ethnicity', 'lunch', 'test preparation course') och en ordinal kolumn, '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

Med hjälp av ColumnTransformer kan nominella data transformeras med OneHotEncoder och ordnala data med OrdinalEncoder i ett enda steg.

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

ColumnTransformer är i sig själv en transformerare och tillhandahåller därför standardmetoderna .fit(), .fit_transform() och .transform().

question mark

Antag att du har en datamängd med funktionerna 'education', 'income', 'job'. Vad händer med kolumnen 'income' efter att följande kod har körts? (Observera att argumentet remainder inte är specificerat)

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 18

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

bookColumnTransformer

Svep för att visa menyn

När .fit_transform(X) anropas på en Pipeline tillämpas varje transformerare på alla kolumner, vilket inte alltid är önskvärt. Vissa kolumner kan kräva olika kodare — till exempel OrdinalEncoder för ordnade variabler och OneHotEncoder för nominella variabler. ColumnTransformer löser detta genom att låta dig tilldela olika transformerare till specifika kolumner med hjälp av make_column_transformer.

make_column_transformer accepterar tupler av (transformer, [columns]). Till exempel, tillämpa OrdinalEncoder'education' och OneHotEncoder'gender':

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

remainder styr vad som händer med ospecificerade kolumner. Standard: 'drop'. För att behålla alla andra kolumner oförändrade, ange remainder='passthrough'.

Till exempel, överväg filen exams.csv. Den innehåller flera nominala kolumner ('gender', 'race/ethnicity', 'lunch', 'test preparation course') och en ordinal kolumn, '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

Med hjälp av ColumnTransformer kan nominella data transformeras med OneHotEncoder och ordnala data med OrdinalEncoder i ett enda steg.

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

ColumnTransformer är i sig själv en transformerare och tillhandahåller därför standardmetoderna .fit(), .fit_transform() och .transform().

question mark

Antag att du har en datamängd med funktionerna 'education', 'income', 'job'. Vad händer med kolumnen 'income' efter att följande kod har körts? (Observera att argumentet remainder inte är specificerat)

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 18
some-alt