Kodning 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']])
Tack för dina kommentarer!
Fråga AI
Fråga AI
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
Kodning 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']])
Tack för dina kommentarer!