Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Kolonnetransformator | Pipelines
Introduktion til Maskinlæring med Python

bookKolonnetransformator

Når du kalder .fit_transform(X) 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 lade dig tildele forskellige transformere til specifikke kolonner ved hjælp 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, sæt remainder='passthrough'.

For eksempel indeholder filen exams.csv flere nominale kolonner ('gender', 'race/ethnicity', 'lunch', 'test preparation course') og én ordinale 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 ordinale 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 standardmetoderne .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 3. Kapitel 2

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

Awesome!

Completion rate improved to 3.13

bookKolonnetransformator

Stryg for at vise menuen

Når du kalder .fit_transform(X) 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 lade dig tildele forskellige transformere til specifikke kolonner ved hjælp 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, sæt remainder='passthrough'.

For eksempel indeholder filen exams.csv flere nominale kolonner ('gender', 'race/ethnicity', 'lunch', 'test preparation course') og én ordinale 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 ordinale 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 standardmetoderne .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 3. Kapitel 2
some-alt