Koding av Kategoriske Egenskaper
Klyngeringsalgoritmer som K-means krever numeriske data. Kategoriske egenskaper må konverteres til numerisk form ved hjelp av koding. Du vil lære om ordinal og one-hot encoding.
Ordinal koding
Ordinal koding konverterer ordnede kategorier til numeriske verdier, og bevarer deres rekkefølge. For eksempel vil ordinal koding av kolonnen 'education_level'
transformere verdiene fra "High School"
, "Bachelor's"
, "Master's"
, 'PhD'
til 0
, 1
, 2
, 3
.
Dette forutsetter en meningsfull numerisk forskjell mellom de kodede verdiene, noe som ikke alltid 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 koding
One-hot koding konverterer nominale (uordnede) kategorier til binære kolonner, hvor hver kategori blir en ny kolonne. For en egenskap med n
kategorier, opprettes det vanligvis n
kolonner — én kolonne er 1
for den tilsvarende kategorien, og de andre er 0
. Imidlertid er det kun nødvendig med n-1
kolonner for å representere informasjonen uten redundans.
For eksempel kan en 'color'
-kolonne med verdiene 'red'
, 'blue'
og 'green'
kodes med kun to kolonner: 'color_red'
og 'color_blue'
. Hvis en rad har 0
i begge, innebærer det at fargen er 'green'
. Ved å fjerne én kolonne unngår vi redundans.
Fjerning av den redundante kolonnen spesifiseres via drop='first'
:
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(drop='first', sparse=False)
encoded = encoder.fit_transform(df[['color']])
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 2.94
Koding av Kategoriske Egenskaper
Sveip for å vise menyen
Klyngeringsalgoritmer som K-means krever numeriske data. Kategoriske egenskaper må konverteres til numerisk form ved hjelp av koding. Du vil lære om ordinal og one-hot encoding.
Ordinal koding
Ordinal koding konverterer ordnede kategorier til numeriske verdier, og bevarer deres rekkefølge. For eksempel vil ordinal koding av kolonnen 'education_level'
transformere verdiene fra "High School"
, "Bachelor's"
, "Master's"
, 'PhD'
til 0
, 1
, 2
, 3
.
Dette forutsetter en meningsfull numerisk forskjell mellom de kodede verdiene, noe som ikke alltid 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 koding
One-hot koding konverterer nominale (uordnede) kategorier til binære kolonner, hvor hver kategori blir en ny kolonne. For en egenskap med n
kategorier, opprettes det vanligvis n
kolonner — én kolonne er 1
for den tilsvarende kategorien, og de andre er 0
. Imidlertid er det kun nødvendig med n-1
kolonner for å representere informasjonen uten redundans.
For eksempel kan en 'color'
-kolonne med verdiene 'red'
, 'blue'
og 'green'
kodes med kun to kolonner: 'color_red'
og 'color_blue'
. Hvis en rad har 0
i begge, innebærer det at fargen er 'green'
. Ved å fjerne én kolonne unngår vi redundans.
Fjerning av den redundante kolonnen spesifiseres via drop='first'
:
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(drop='first', sparse=False)
encoded = encoder.fit_transform(df[['color']])
Takk for tilbakemeldingene dine!