Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Koding av Kategoriske Egenskaper | Kjernebegreper
Klyngeanalyse

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

Hvilken kodingsmetode egner seg best for en kategorisk variabel som 'country' med verdier som "USA", "Canada" og "Germany", der det ikke finnes noen naturlig rekkefølge?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

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

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

Hvilken kodingsmetode egner seg best for en kategorisk variabel som 'country' med verdier som "USA", "Canada" og "Germany", der det ikke finnes noen naturlig rekkefølge?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 2
some-alt