Encodage des Variables Catégorielles
Les algorithmes de clustering comme K-means nécessitent des données numériques. Les variables catégorielles doivent être converties en format numérique à l'aide d'un encodage. Présentation de l'encodage ordinal et de l'encodage one-hot.
Encodage ordinal
L'encodage ordinal convertit des catégories ordonnées en valeurs numériques, en préservant leur rang. Par exemple, l'encodage ordinal de la colonne 'education_level'
transformera ses valeurs de "High School"
, "Bachelor's"
, "Master's"
, 'PhD'
en 0
, 1
, 2
, 3
.
Cela suppose une différence numérique significative entre les valeurs encodées, ce qui n'est pas toujours exact.
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']])
Encodage one-hot
L'encodage one-hot convertit les catégories nominales (non ordonnées) en colonnes binaires, où chaque catégorie devient une nouvelle colonne. Pour une variable comportant n
catégories, cela crée généralement n
colonnes — une colonne vaut 1
pour la catégorie correspondante, les autres valent 0
. Cependant, seules n-1
colonnes sont nécessaires pour représenter l'information sans redondance.
Par exemple, une colonne 'color'
avec les valeurs 'red'
, 'blue'
et 'green'
peut être encodée avec seulement deux colonnes : 'color_red'
et 'color_blue'
. Si une ligne a 0
dans les deux colonnes, cela implique que la couleur est 'green'
. En supprimant une colonne, on évite la redondance.
La suppression de la colonne redondante est spécifiée via drop='first'
:
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(drop='first', sparse=False)
encoded = encoder.fit_transform(df[['color']])
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 2.94
Encodage des Variables Catégorielles
Glissez pour afficher le menu
Les algorithmes de clustering comme K-means nécessitent des données numériques. Les variables catégorielles doivent être converties en format numérique à l'aide d'un encodage. Présentation de l'encodage ordinal et de l'encodage one-hot.
Encodage ordinal
L'encodage ordinal convertit des catégories ordonnées en valeurs numériques, en préservant leur rang. Par exemple, l'encodage ordinal de la colonne 'education_level'
transformera ses valeurs de "High School"
, "Bachelor's"
, "Master's"
, 'PhD'
en 0
, 1
, 2
, 3
.
Cela suppose une différence numérique significative entre les valeurs encodées, ce qui n'est pas toujours exact.
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']])
Encodage one-hot
L'encodage one-hot convertit les catégories nominales (non ordonnées) en colonnes binaires, où chaque catégorie devient une nouvelle colonne. Pour une variable comportant n
catégories, cela crée généralement n
colonnes — une colonne vaut 1
pour la catégorie correspondante, les autres valent 0
. Cependant, seules n-1
colonnes sont nécessaires pour représenter l'information sans redondance.
Par exemple, une colonne 'color'
avec les valeurs 'red'
, 'blue'
et 'green'
peut être encodée avec seulement deux colonnes : 'color_red'
et 'color_blue'
. Si une ligne a 0
dans les deux colonnes, cela implique que la couleur est 'green'
. En supprimant une colonne, on évite la redondance.
La suppression de la colonne redondante est spécifiée via drop='first'
:
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(drop='first', sparse=False)
encoded = encoder.fit_transform(df[['color']])
Merci pour vos commentaires !