Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Kolumntransformator | Pipelines
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Introduktion till maskininlärning med Python

bookKolumntransformator

Vid anrop av .fit_transform(X) 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
Observera

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, så den tillhandahåller de standardiserade metoderna .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 angivet)

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 2

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

bookKolumntransformator

Svep för att visa menyn

Vid anrop av .fit_transform(X) 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
Observera

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, så den tillhandahåller de standardiserade metoderna .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 angivet)

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 2
some-alt