ColumnTransformer
Kun kutsutaan .fit_transform(X) Pipeline-rakenteessa, jokainen muunnin sovelletaan kaikkiin sarakkeisiin, mikä ei aina ole toivottavaa. Jotkin sarakkeet saattavat vaatia erilaisia koodereita — esimerkiksi OrdinalEncoder järjestysmuuttujille ja OneHotEncoder nimellisille muuttujille.
ColumnTransformer ratkaisee tämän antamalla mahdollisuuden määrittää eri muuntimet tietyille sarakkeille käyttämällä make_column_transformer-funktiota.
make_column_transformer ottaa vastaan tupleja muodossa (transformer, [columns]).
Esimerkiksi, kun OrdinalEncoder sovelletaan sarakkeeseen 'education' ja OneHotEncoder sarakkeeseen 'gender':
ct = make_column_transformer(
(OrdinalEncoder(), ['education']),
(OneHotEncoder(), ['gender']),
remainder='passthrough'
)
remainder määrittää, mitä tapahtuu määrittelemättömille sarakkeille.
Oletus: 'drop'.
Jos haluat säilyttää kaikki muut sarakkeet muuttumattomina, aseta remainder='passthrough'.
Esimerkiksi tiedostossa exams.csv on useita nominaalisia sarakkeita ('gender', 'race/ethnicity', 'lunch', 'test preparation course') ja yksi ordinaalinen sarake, '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())
ColumnTransformer-luokan avulla nominaalidatan voi muuntaa OneHotEncoder-muotoon ja ordinaalidatan OrdinalEncoder-muotoon yhdessä vaiheessa.
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 on itsessään muunnin, joten se tarjoaa vakiomenetelmät .fit(), .fit_transform() ja .transform().
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 4.55
ColumnTransformer
Pyyhkäise näyttääksesi valikon
Kun kutsutaan .fit_transform(X) Pipeline-rakenteessa, jokainen muunnin sovelletaan kaikkiin sarakkeisiin, mikä ei aina ole toivottavaa. Jotkin sarakkeet saattavat vaatia erilaisia koodereita — esimerkiksi OrdinalEncoder järjestysmuuttujille ja OneHotEncoder nimellisille muuttujille.
ColumnTransformer ratkaisee tämän antamalla mahdollisuuden määrittää eri muuntimet tietyille sarakkeille käyttämällä make_column_transformer-funktiota.
make_column_transformer ottaa vastaan tupleja muodossa (transformer, [columns]).
Esimerkiksi, kun OrdinalEncoder sovelletaan sarakkeeseen 'education' ja OneHotEncoder sarakkeeseen 'gender':
ct = make_column_transformer(
(OrdinalEncoder(), ['education']),
(OneHotEncoder(), ['gender']),
remainder='passthrough'
)
remainder määrittää, mitä tapahtuu määrittelemättömille sarakkeille.
Oletus: 'drop'.
Jos haluat säilyttää kaikki muut sarakkeet muuttumattomina, aseta remainder='passthrough'.
Esimerkiksi tiedostossa exams.csv on useita nominaalisia sarakkeita ('gender', 'race/ethnicity', 'lunch', 'test preparation course') ja yksi ordinaalinen sarake, '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())
ColumnTransformer-luokan avulla nominaalidatan voi muuntaa OneHotEncoder-muotoon ja ordinaalidatan OrdinalEncoder-muotoon yhdessä vaiheessa.
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 on itsessään muunnin, joten se tarjoaa vakiomenetelmät .fit(), .fit_transform() ja .transform().
Kiitos palautteestasi!