Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Kodning af Kategoriske Træk | Kernekoncepter
Klyngeanalyse

bookKodning 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']]) 
question mark

Hvilken kodningsmetode er bedst egnet til en kategorisk egenskab som 'country' med værdier såsom "USA", "Canada" og "Germany", hvor der ikke er nogen naturlig rækkefølge?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 2

Spørg AI

expand

Spørg AI

ChatGPT

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

bookKodning 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']]) 
question mark

Hvilken kodningsmetode er bedst egnet til en kategorisk egenskab som 'country' med værdier såsom "USA", "Canada" og "Germany", hvor der ikke er nogen naturlig rækkefølge?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 2
some-alt