Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele ColumnTransformer | Osio
Koneoppimisen Perusteet

bookColumnTransformer

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'
)
Note
Huomio

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'.

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

ColumnTransformer-luokan avulla nominaalidatan voi muuntaa OneHotEncoder-muotoon ja ordinaalidatan OrdinalEncoder-muotoon yhdessä vaiheessa.

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 on itsessään muunnin, joten se tarjoaa vakiomenetelmät .fit(), .fit_transform() ja .transform().

question mark

Oletetaan, että käytössä on tietojoukko, jossa on ominaisuudet 'education', 'income', 'job'. Mitä tapahtuu 'income'-sarakkeelle, kun seuraava koodi suoritetaan? (Huomaa, että remainder-argumenttia ei ole määritelty)

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 18

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

bookColumnTransformer

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'
)
Note
Huomio

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'.

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

ColumnTransformer-luokan avulla nominaalidatan voi muuntaa OneHotEncoder-muotoon ja ordinaalidatan OrdinalEncoder-muotoon yhdessä vaiheessa.

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 on itsessään muunnin, joten se tarjoaa vakiomenetelmät .fit(), .fit_transform() ja .transform().

question mark

Oletetaan, että käytössä on tietojoukko, jossa on ominaisuudet 'education', 'income', 'job'. Mitä tapahtuu 'income'-sarakkeelle, kun seuraava koodi suoritetaan? (Huomaa, että remainder-argumenttia ei ole määritelty)

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 18
some-alt