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

ColumnTransformer

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 nominelle. ColumnTransformer løser dette ved at lade dig tildele forskellige transformere til specifikke kolonner ved hjælp af make_column_transformer.

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ændrede, angiv remainder='passthrough'.

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

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))

ColumnTransformer er selv en transformer og tilbyder derfor 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 følgende kode er kørt? (Bemærk, at argumentet remainder ikke er angivet)

Vælg det korrekte svar

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

Sektion 3. Kapitel 2
some-alt