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
Awesome!
Completion rate improved to 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!