Codering van Categorische Kenmerken
Clustering-algoritmen zoals K-means vereisen numerieke data. Categorische kenmerken moeten worden omgezet naar numerieke vorm via codering. Je leert over ordinale en one-hot encoding.
Ordinale Codering
Ordinale codering zet geordende categorieën om in numerieke waarden, waarbij hun rangorde behouden blijft. Bijvoorbeeld, ordinale codering van de kolom 'education_level'
transformeert de waarden van "High School"
, "Bachelor's"
, "Master's"
, 'PhD'
naar 0
, 1
, 2
, 3
.
Dit veronderstelt een betekenisvol numeriek verschil tussen de gecodeerde waarden, wat niet altijd accuraat hoeft te zijn.
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 Codering
One-hot codering zet nominale (ongeordende) categorieën om in binaire kolommen, waarbij elke categorie een nieuwe kolom wordt. Voor een kenmerk met n
categorieën worden doorgaans n
kolommen aangemaakt — één kolom is 1
voor de betreffende categorie, de overige zijn 0
. Echter, slechts n-1
kolommen zijn daadwerkelijk nodig om de informatie zonder redundantie weer te geven.
Bijvoorbeeld, een kolom 'color'
met waarden 'red'
, 'blue'
en 'green'
kan worden gecodeerd met slechts twee kolommen: 'color_red'
en 'color_blue'
. Als een rij 0
heeft in beide kolommen, betekent dit dat de kleur 'green'
is. Door één kolom te verwijderen, voorkomen we redundantie.
Het verwijderen van de redundante kolom wordt gespecificeerd via drop='first'
:
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(drop='first', sparse=False)
encoded = encoder.fit_transform(df[['color']])
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 2.94
Codering van Categorische Kenmerken
Veeg om het menu te tonen
Clustering-algoritmen zoals K-means vereisen numerieke data. Categorische kenmerken moeten worden omgezet naar numerieke vorm via codering. Je leert over ordinale en one-hot encoding.
Ordinale Codering
Ordinale codering zet geordende categorieën om in numerieke waarden, waarbij hun rangorde behouden blijft. Bijvoorbeeld, ordinale codering van de kolom 'education_level'
transformeert de waarden van "High School"
, "Bachelor's"
, "Master's"
, 'PhD'
naar 0
, 1
, 2
, 3
.
Dit veronderstelt een betekenisvol numeriek verschil tussen de gecodeerde waarden, wat niet altijd accuraat hoeft te zijn.
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 Codering
One-hot codering zet nominale (ongeordende) categorieën om in binaire kolommen, waarbij elke categorie een nieuwe kolom wordt. Voor een kenmerk met n
categorieën worden doorgaans n
kolommen aangemaakt — één kolom is 1
voor de betreffende categorie, de overige zijn 0
. Echter, slechts n-1
kolommen zijn daadwerkelijk nodig om de informatie zonder redundantie weer te geven.
Bijvoorbeeld, een kolom 'color'
met waarden 'red'
, 'blue'
en 'green'
kan worden gecodeerd met slechts twee kolommen: 'color_red'
en 'color_blue'
. Als een rij 0
heeft in beide kolommen, betekent dit dat de kleur 'green'
is. Door één kolom te verwijderen, voorkomen we redundantie.
Het verwijderen van de redundante kolom wordt gespecificeerd via drop='first'
:
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(drop='first', sparse=False)
encoded = encoder.fit_transform(df[['color']])
Bedankt voor je feedback!