Kategoristen 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']])
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 2.94
Kategoristen 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']])
Kiitos palautteestasi!