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 | Kärnbegrepp
Klusteranalys

bookKodning av Kategoriska Variabler

Klusteralgoritmer 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 kodning och one-hot kodning.

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']]) 

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 kolumn 'color' 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']]) 
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

Awesome!

Completion rate improved to 2.94

bookKodning av Kategoriska Variabler

Svep för att visa menyn

Klusteralgoritmer 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 kodning och one-hot kodning.

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']]) 

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 kolumn 'color' 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']]) 
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