Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Kodning av Kategoriska Variabler | Grundläggande Koncept
Klusteranalys

bookKodning av Kategoriska Variabler

Klustringsalgoritmer som K-means kräver numerisk data. Kategoriska variabler måste omvandlas till numerisk form genom kodning. Du kommer att lära dig om ordinal och one-hot encoding.

Ordinal kodning

Ordinal kodning omvandlar ordnade kategorier till numeriska värden och bevarar deras rangordning. Till exempel kommer ordinal kodning av kolumnen 'education_level' att omvandla dess värden från "High School", "Bachelor's", "Master's", 'PhD' till 0, 1, 2, 3.

Detta förutsätter en meningsfull numerisk skillnad mellan de kodade värdena, vilket inte alltid är 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']]) 
Note
Notera

Denna kodning bör endast användas för ordinala variabler där kategoriernas ordning är viktig.

One-hot-kodning

One-hot-kodning omvandlar nominala (oordnade) kategorier till binära kolumner, där varje kategori blir en ny kolumn. För en variabel med n kategorier skapas vanligtvis n kolumner — en kolumn är 1 för motsvarande kategori och de andra är 0. Dock behövs endast n-1 kolumner för att representera informationen utan redundans.

Till exempel kan en 'color'-kolumn med värdena 'red', 'blue' och 'green' kodas med endast två kolumner: 'color_red' och 'color_blue'. Om en rad har 0 i båda, innebär det att färgen är 'green'. Genom att ta bort en kolumn undviks redundans.

Borttagning av den redundanta kolumnen anges via drop='first':

from sklearn.preprocessing import OneHotEncoder 

encoder = OneHotEncoder(drop='first', sparse=False) 

encoded = encoder.fit_transform(df[['color']]) 
Note
Notera

Även om one-hot-kodning undviker att införa ordning och passar nominala variabler, kan det öka datadimensionaliteten.

question mark

Vilken kodningsmetod är bäst lämpad för en kategorisk variabel som 'country' med värden som "USA", "Canada" och "Germany", där det inte finns någon naturlig ordning?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 2

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you explain the difference between ordinal and one-hot encoding in more detail?

When should I use ordinal encoding versus one-hot encoding?

Can you give more examples of categorical features and how to encode them?

Awesome!

Completion rate improved to 2.94

bookKodning av Kategoriska Variabler

Svep för att visa menyn

Klustringsalgoritmer som K-means kräver numerisk data. Kategoriska variabler måste omvandlas till numerisk form genom kodning. Du kommer att lära dig om ordinal och one-hot encoding.

Ordinal kodning

Ordinal kodning omvandlar ordnade kategorier till numeriska värden och bevarar deras rangordning. Till exempel kommer ordinal kodning av kolumnen 'education_level' att omvandla dess värden från "High School", "Bachelor's", "Master's", 'PhD' till 0, 1, 2, 3.

Detta förutsätter en meningsfull numerisk skillnad mellan de kodade värdena, vilket inte alltid är 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']]) 
Note
Notera

Denna kodning bör endast användas för ordinala variabler där kategoriernas ordning är viktig.

One-hot-kodning

One-hot-kodning omvandlar nominala (oordnade) kategorier till binära kolumner, där varje kategori blir en ny kolumn. För en variabel med n kategorier skapas vanligtvis n kolumner — en kolumn är 1 för motsvarande kategori och de andra är 0. Dock behövs endast n-1 kolumner för att representera informationen utan redundans.

Till exempel kan en 'color'-kolumn med värdena 'red', 'blue' och 'green' kodas med endast två kolumner: 'color_red' och 'color_blue'. Om en rad har 0 i båda, innebär det att färgen är 'green'. Genom att ta bort en kolumn undviks redundans.

Borttagning av den redundanta kolumnen anges via drop='first':

from sklearn.preprocessing import OneHotEncoder 

encoder = OneHotEncoder(drop='first', sparse=False) 

encoded = encoder.fit_transform(df[['color']]) 
Note
Notera

Även om one-hot-kodning undviker att införa ordning och passar nominala variabler, kan det öka datadimensionaliteten.

question mark

Vilken kodningsmetod är bäst lämpad för en kategorisk variabel som 'country' med värden som "USA", "Canada" och "Germany", där det inte finns någon naturlig ordning?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 2
some-alt