Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Sarakemuunnin | Putkistot
Quizzes & Challenges
Quizzes
Challenges
/
Johdatus koneoppimiseen Pythonilla

bookSarakemuunnin

Kun kutsutaan .fit_transform(X) Pipeline-objektille, jokainen muunnin sovelletaan kaikkiin sarakkeisiin, mikä ei aina ole toivottavaa. Jotkin sarakkeet saattavat vaatia erilaisia koodereita — esimerkiksi OrdinalEncoder järjestysasteikollisille ominaisuuksille ja OneHotEncoder nimellisille ominaisuuksille. 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 tarkastellaan tiedostoa exams.csv. Se sisältää useita nominaalisia sarakkeita ('gender', 'race/ethnicity', 'lunch', 'test preparation course') ja yhden ordinaalisen sarakkeen, '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 nominaalidataa voidaan muuntaa OneHotEncoder-muuntimella ja ordinaalidataa OrdinalEncoder-muuntimella 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 3. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

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

bookSarakemuunnin

Pyyhkäise näyttääksesi valikon

Kun kutsutaan .fit_transform(X) Pipeline-objektille, jokainen muunnin sovelletaan kaikkiin sarakkeisiin, mikä ei aina ole toivottavaa. Jotkin sarakkeet saattavat vaatia erilaisia koodereita — esimerkiksi OrdinalEncoder järjestysasteikollisille ominaisuuksille ja OneHotEncoder nimellisille ominaisuuksille. 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 tarkastellaan tiedostoa exams.csv. Se sisältää useita nominaalisia sarakkeita ('gender', 'race/ethnicity', 'lunch', 'test preparation course') ja yhden ordinaalisen sarakkeen, '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 nominaalidataa voidaan muuntaa OneHotEncoder-muuntimella ja ordinaalidataa OrdinalEncoder-muuntimella 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 3. Luku 2
some-alt