Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære ColumnTransformer | Sektion
Grundlæggende Maskinlæring

bookColumnTransformer

Når .fit_transform(X) kaldes på en Pipeline, anvendes hver transformer på alle kolonner, hvilket ikke altid er ønskeligt. Nogle kolonner kan kræve forskellige kodere — for eksempel OrdinalEncoder til ordinale egenskaber og OneHotEncoder til nominale. ColumnTransformer løser dette ved at tillade tildeling af forskellige transformere til specifikke kolonner ved brug af make_column_transformer.

make_column_transformer accepterer tupler af (transformer, [columns]). For eksempel, anvendelse af OrdinalEncoder'education' og OneHotEncoder'gender':

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

remainder styrer, hvad der sker med ikke-specificerede kolonner. Standard: 'drop'. For at beholde alle andre kolonner uændret, angiv remainder='passthrough'.

For eksempel, overvej filen exams.csv. Den indeholder flere nominale kolonner ('gender', 'race/ethnicity', 'lunch', 'test preparation course') og én ordnede kolonne, '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

Ved brug af ColumnTransformer kan nominelle data transformeres med OneHotEncoder og ordnede data med OrdinalEncoder i ét enkelt trin.

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 er selv en transformer, så den tilbyder de standardmetoder: .fit(), .fit_transform() og .transform().

question mark

Antag, at du har et datasæt med funktionerne 'education', 'income', 'job'. Hvad sker der med kolonnen 'income' efter at have kørt følgende kode? (Bemærk, at argumentet remainder ikke er angivet)

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 18

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

bookColumnTransformer

Stryg for at vise menuen

Når .fit_transform(X) kaldes på en Pipeline, anvendes hver transformer på alle kolonner, hvilket ikke altid er ønskeligt. Nogle kolonner kan kræve forskellige kodere — for eksempel OrdinalEncoder til ordinale egenskaber og OneHotEncoder til nominale. ColumnTransformer løser dette ved at tillade tildeling af forskellige transformere til specifikke kolonner ved brug af make_column_transformer.

make_column_transformer accepterer tupler af (transformer, [columns]). For eksempel, anvendelse af OrdinalEncoder'education' og OneHotEncoder'gender':

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

remainder styrer, hvad der sker med ikke-specificerede kolonner. Standard: 'drop'. For at beholde alle andre kolonner uændret, angiv remainder='passthrough'.

For eksempel, overvej filen exams.csv. Den indeholder flere nominale kolonner ('gender', 'race/ethnicity', 'lunch', 'test preparation course') og én ordnede kolonne, '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

Ved brug af ColumnTransformer kan nominelle data transformeres med OneHotEncoder og ordnede data med OrdinalEncoder i ét enkelt trin.

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 er selv en transformer, så den tilbyder de standardmetoder: .fit(), .fit_transform() og .transform().

question mark

Antag, at du har et datasæt med funktionerne 'education', 'income', 'job'. Hvad sker der med kolonnen 'income' efter at have kørt følgende kode? (Bemærk, at argumentet remainder ikke er angivet)

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 18
some-alt