Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Kategoristen Ominaisuuksien Koodaus | Ydinkäsitteet
Klusterianalyysi

bookKategoristen Ominaisuuksien Koodaus

Klusterointialgoritmit, kuten K-means, vaativat numeerista dataa. Kategoriset ominaisuudet täytyy muuntaa numeeriseen muotoon koodaamalla. Tässä opit ordinaali- ja one-hot-koodauksesta.

Ordinaalikoodaus

Ordinaalikoodaus muuntaa järjestetyt kategoriat numeerisiksi arvoiksi säilyttäen niiden järjestyksen. Esimerkiksi 'education_level'-sarakkeen ordinaalikoodaus muuttaa arvot "High School", "Bachelor's", "Master's", 'PhD' arvoiksi 0, 1, 2, 3.

Tämä olettaa, että koodattujen arvojen välillä on merkityksellinen numeerinen ero, mikä ei aina pidä paikkaansa.

from sklearn.preprocessing import OrdinalEncoder

education_levels = [['High School',
                     "Bachelor's",
                     "Master's",
                     "PhD"]]
encoder = OrdinalEncoder(categories=education_levels)

df[['education_encoded']] = encoder.fit_transform(df[['education_level']]) 

One-hot-koodaus

One-hot-koodaus muuntaa nominaaliset (järjestämättömät) kategoriat binäärisiksi sarakkeiksi, joissa jokainen kategoria muodostaa uuden sarakkeen. Jos ominaisuudella on n kategoriaa, tämä luo tyypillisesti n saraketta — yhdessä sarakkeessa on 1 kyseiselle kategorialle ja muissa 0. Kuitenkin vain n-1 saraketta tarvitaan tiedon ilman redundanssia esittämiseen.

Esimerkiksi 'color'-sarakkeen arvot 'red', 'blue' ja 'green' voidaan koodata vain kahdella sarakkeella: 'color_red' ja 'color_blue'. Jos rivillä on 0 molemmissa, väri on 'green'. Pudottamalla yksi sarake vältetään redundanssi.

Redundantin sarakkeen poistaminen määritellään drop='first'-parametrilla:

from sklearn.preprocessing import OneHotEncoder 

encoder = OneHotEncoder(drop='first', sparse=False) 

encoded = encoder.fit_transform(df[['color']]) 
question mark

Mikä koodausmenetelmä sopii parhaiten kategoriselle ominaisuudelle kuten 'country', jonka arvoja ovat esimerkiksi "USA", "Canada" ja "Germany", eikä niillä ole luonnollista järjestystä?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Awesome!

Completion rate improved to 2.94

bookKategoristen Ominaisuuksien Koodaus

Pyyhkäise näyttääksesi valikon

Klusterointialgoritmit, kuten K-means, vaativat numeerista dataa. Kategoriset ominaisuudet täytyy muuntaa numeeriseen muotoon koodaamalla. Tässä opit ordinaali- ja one-hot-koodauksesta.

Ordinaalikoodaus

Ordinaalikoodaus muuntaa järjestetyt kategoriat numeerisiksi arvoiksi säilyttäen niiden järjestyksen. Esimerkiksi 'education_level'-sarakkeen ordinaalikoodaus muuttaa arvot "High School", "Bachelor's", "Master's", 'PhD' arvoiksi 0, 1, 2, 3.

Tämä olettaa, että koodattujen arvojen välillä on merkityksellinen numeerinen ero, mikä ei aina pidä paikkaansa.

from sklearn.preprocessing import OrdinalEncoder

education_levels = [['High School',
                     "Bachelor's",
                     "Master's",
                     "PhD"]]
encoder = OrdinalEncoder(categories=education_levels)

df[['education_encoded']] = encoder.fit_transform(df[['education_level']]) 

One-hot-koodaus

One-hot-koodaus muuntaa nominaaliset (järjestämättömät) kategoriat binäärisiksi sarakkeiksi, joissa jokainen kategoria muodostaa uuden sarakkeen. Jos ominaisuudella on n kategoriaa, tämä luo tyypillisesti n saraketta — yhdessä sarakkeessa on 1 kyseiselle kategorialle ja muissa 0. Kuitenkin vain n-1 saraketta tarvitaan tiedon ilman redundanssia esittämiseen.

Esimerkiksi 'color'-sarakkeen arvot 'red', 'blue' ja 'green' voidaan koodata vain kahdella sarakkeella: 'color_red' ja 'color_blue'. Jos rivillä on 0 molemmissa, väri on 'green'. Pudottamalla yksi sarake vältetään redundanssi.

Redundantin sarakkeen poistaminen määritellään drop='first'-parametrilla:

from sklearn.preprocessing import OneHotEncoder 

encoder = OneHotEncoder(drop='first', sparse=False) 

encoded = encoder.fit_transform(df[['color']]) 
question mark

Mikä koodausmenetelmä sopii parhaiten kategoriselle ominaisuudelle kuten 'country', jonka arvoja ovat esimerkiksi "USA", "Canada" ja "Germany", eikä niillä ole luonnollista järjestystä?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 2
some-alt