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

bookKolonnetransformator

Når du kaller .fit_transform(X) på en Pipeline, blir hver transformer brukt på alle kolonner, noe som ikke alltid er ønskelig. Noen kolonner kan kreve ulike kodere — for eksempel OrdinalEncoder for ordinale egenskaper og OneHotEncoder for nominale. ColumnTransformer løser dette ved å la deg tildele forskjellige transformere til spesifikke kolonner ved hjelp av make_column_transformer.

make_column_transformer aksepterer tupler av (transformer, [columns]). For eksempel, bruk av OrdinalEncoder'education' og OneHotEncoder'gender':

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

remainder styrer hva som skjer med uspesifiserte kolonner. Standard: 'drop'. For å beholde alle andre kolonner uendret, sett remainder='passthrough'.

For eksempel, vurder filen exams.csv. Den inneholder 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 å bruke ColumnTransformer kan nominelle data transformeres med OneHotEncoder og ordinale data med OrdinalEncoder i ett enkelt 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 er selv en transformer, og tilbyr derfor de standard metodene .fit(), .fit_transform() og .transform().

question mark

Anta at du har et datasett med egenskapene 'education', 'income', 'job'. Hva vil skje med kolonnen 'income' etter at følgende kode kjøres? (Merk at argumentet remainder ikke er spesifisert)

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you explain what the `remainder='passthrough'` argument does?

How do I know which columns are nominal or ordinal in my own dataset?

Can you show how to use the transformed data in a machine learning model?

Awesome!

Completion rate improved to 3.13

bookKolonnetransformator

Sveip for å vise menyen

Når du kaller .fit_transform(X) på en Pipeline, blir hver transformer brukt på alle kolonner, noe som ikke alltid er ønskelig. Noen kolonner kan kreve ulike kodere — for eksempel OrdinalEncoder for ordinale egenskaper og OneHotEncoder for nominale. ColumnTransformer løser dette ved å la deg tildele forskjellige transformere til spesifikke kolonner ved hjelp av make_column_transformer.

make_column_transformer aksepterer tupler av (transformer, [columns]). For eksempel, bruk av OrdinalEncoder'education' og OneHotEncoder'gender':

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

remainder styrer hva som skjer med uspesifiserte kolonner. Standard: 'drop'. For å beholde alle andre kolonner uendret, sett remainder='passthrough'.

For eksempel, vurder filen exams.csv. Den inneholder 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 å bruke ColumnTransformer kan nominelle data transformeres med OneHotEncoder og ordinale data med OrdinalEncoder i ett enkelt 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 er selv en transformer, og tilbyr derfor de standard metodene .fit(), .fit_transform() og .transform().

question mark

Anta at du har et datasett med egenskapene 'education', 'income', 'job'. Hva vil skje med kolonnen 'income' etter at følgende kode kjøres? (Merk at argumentet remainder ikke er spesifisert)

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2
some-alt