Kategorisk Funksjonskoding
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-koding.
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 kodede verdier, noe som ikke alltid er nøyaktig.
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']])
Slik koding bør kun brukes for ordinale egenskaper der rekkefølgen på kategoriene er viktig.
One-hot-koding
One-hot-koding konverterer nominale (uordnede) kategorier til binære kolonner, der 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 man 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']])
Selv om one-hot-koding unngår å påtvinge rekkefølge og passer for nominale egenskaper, kan det øke datadimensjonaliteten.
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
Kategorisk Funksjonskoding
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-koding.
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 kodede verdier, noe som ikke alltid er nøyaktig.
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']])
Slik koding bør kun brukes for ordinale egenskaper der rekkefølgen på kategoriene er viktig.
One-hot-koding
One-hot-koding konverterer nominale (uordnede) kategorier til binære kolonner, der 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 man 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']])
Selv om one-hot-koding unngår å påtvinge rekkefølge og passer for nominale egenskaper, kan det øke datadimensjonaliteten.
Takk for tilbakemeldingene dine!