Kolonnetransformator
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 på 'education' og OneHotEncoder på 'gender':
ct = make_column_transformer(
(OrdinalEncoder(), ['education']),
(OneHotEncoder(), ['gender']),
remainder='passthrough'
)
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'.
12345import 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.
12345678910111213from 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, så den tilbyder de standardmetoderne .fit(), .fit_transform() og .transform().
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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?
Fantastisk!
Completion rate forbedret til 3.13
Kolonnetransformator
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 på 'education' og OneHotEncoder på 'gender':
ct = make_column_transformer(
(OrdinalEncoder(), ['education']),
(OneHotEncoder(), ['gender']),
remainder='passthrough'
)
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'.
12345import 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.
12345678910111213from 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, så den tilbyder de standardmetoderne .fit(), .fit_transform() og .transform().
Tak for dine kommentarer!