Kodning af Kategoriske Træk
Klyngedannelsesalgoritmer som K-means kræver numeriske data. Kategoriske egenskaber skal konverteres til numerisk form ved hjælp af kodning. Du vil lære om ordinal og one-hot kodning.
Ordinal kodning
Ordinal kodning omdanner ordnede kategorier til numeriske værdier og bevarer deres rangorden. For eksempel vil ordinal kodning af kolonnen 'education_level'
omdanne dens værdier fra "High School"
, "Bachelor's"
, "Master's"
, 'PhD'
til 0
, 1
, 2
, 3
.
Dette forudsætter en meningsfuld numerisk forskel mellem de kodede værdier, hvilket ikke altid er korrekt.
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 kodning
One-hot kodning omdanner nominale (uordnede) kategorier til binære kolonner, hvor hver kategori bliver til en ny kolonne. For en egenskab med n
kategorier oprettes der typisk n
kolonner — én kolonne er 1
for den tilsvarende kategori, og de andre er 0
. Dog er kun n-1
kolonner nødvendige for at repræsentere informationen uden redundans.
For eksempel kan en 'color'
kolonne med værdierne 'red'
, 'blue'
og 'green'
kodes med kun to kolonner: 'color_red'
og 'color_blue'
. Hvis en række har 0
i begge, betyder det, at farven er 'green'
. Ved at fjerne én kolonne undgår vi redundans.
Fjernelsen af den redundante kolonne angives via drop='first'
:
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(drop='first', sparse=False)
encoded = encoder.fit_transform(df[['color']])
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 2.94
Kodning af Kategoriske Træk
Stryg for at vise menuen
Klyngedannelsesalgoritmer som K-means kræver numeriske data. Kategoriske egenskaber skal konverteres til numerisk form ved hjælp af kodning. Du vil lære om ordinal og one-hot kodning.
Ordinal kodning
Ordinal kodning omdanner ordnede kategorier til numeriske værdier og bevarer deres rangorden. For eksempel vil ordinal kodning af kolonnen 'education_level'
omdanne dens værdier fra "High School"
, "Bachelor's"
, "Master's"
, 'PhD'
til 0
, 1
, 2
, 3
.
Dette forudsætter en meningsfuld numerisk forskel mellem de kodede værdier, hvilket ikke altid er korrekt.
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 kodning
One-hot kodning omdanner nominale (uordnede) kategorier til binære kolonner, hvor hver kategori bliver til en ny kolonne. For en egenskab med n
kategorier oprettes der typisk n
kolonner — én kolonne er 1
for den tilsvarende kategori, og de andre er 0
. Dog er kun n-1
kolonner nødvendige for at repræsentere informationen uden redundans.
For eksempel kan en 'color'
kolonne med værdierne 'red'
, 'blue'
og 'green'
kodes med kun to kolonner: 'color_red'
og 'color_blue'
. Hvis en række har 0
i begge, betyder det, at farven er 'green'
. Ved at fjerne én kolonne undgår vi redundans.
Fjernelsen af den redundante kolonne angives via drop='first'
:
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(drop='first', sparse=False)
encoded = encoder.fit_transform(df[['color']])
Tak for dine kommentarer!