Encodage One-Hot avec pd.get_dummies()
L’encodage One-Hot avec pd.get_dummies() permet de transformer des variables catégorielles en une série de colonnes binaires (0 ou 1), où chaque colonne représente une catégorie unique. Cette méthode est particulièrement utile pour les modèles qui ne peuvent pas traiter directement des variables catégorielles, en transformant chaque valeur distincte d’une colonne en une nouvelle colonne binaire. Par exemple, pour une colonne avec les catégories ‘A’, ‘B’ et ‘C’, pd.get_dummies() créera trois nouvelles colonnes, chacune représentant une des catégories avec des valeurs de 1 (si la ligne appartient à cette catégorie) ou 0 (sinon). Cela permet de rendre les données adaptées aux algorithmes d’apprentissage automatique qui exigent des entrées numériques.
Fonctions :
-
pd.get_dummies()
L'encodage One-Hot est une méthode qui permet de transformer des données catégorielles en une représentation binaire, où chaque catégorie est représentée par une colonne distincte avec une valeur de 1 ou 0. Cela est particulièrement utile pour les modèles de machine learning qui ne peuvent pas traiter directement des variables catégorielles. Chaque valeur unique d'une colonne devient une nouvelle colonne, et chaque ligne reçoit un 1 dans la colonne correspondant à sa catégorie et un 0 dans les autres.
Importation :
import pandas as pd
Attributs :
Paramètre Type Description Valeur par défaut columns
list of str Spécifie les colonnes à encoder. None
drop_first
bool Si True
, la première colonne est supprimée pour éviter la multicolinéarité.False
prefix
str, optional Permet de spécifier un préfixe pour le nom des nouvelles colonnes. None
prefix_sep
str, optional Définit un séparateur entre le préfixe et la catégorie dans le nom des colonnes. _
Exemple de code :
import pandas as pd # Exemple de DataFrame data = { 'produit': ['A', 'B', 'C', 'B', 'A', 'C'], 'prix': [10, 20, 30, 20, 10, 30] } df = pd.DataFrame(data) # Encodage One-Hot de la colonne 'produit' df_encoded = pd.get_dummies(df, columns=['produit']) print(df_encoded)
Explication du code :
import pandas as pd
importe la bibliothèque pandas, utilisée ici pour manipuler des données sous forme deDataFrame
.Création d’un DataFrame
Le dictionnaire
data
contient deux colonnes :'produit'
(valeurs catégorielles) et'prix'
(valeurs numériques). Les produits sont répétés dans le DataFrame.df = pd.DataFrame(data)
transforme ce dictionnaire enDataFrame
.Encodage One-Hot de la colonne
'produit'
df_encoded = pd.get_dummies(df, columns=['produit'])
applique l'encodage One-Hot sur la colonne'produit'
. Cela transforme chaque valeur unique de cette colonne en une nouvelle colonne binaire. Chaque produit (A, B, C) reçoit une colonne distincte, avec une valeur de 1 si le produit est présent et 0 sinon. Voici le résultat :- La colonne
'produit_A'
représente le produit A, avec 1 lorsque le produit est A et 0 sinon. - La colonne
'produit_B'
représente le produit B, avec 1 lorsque le produit est B et 0 sinon. - La colonne
'produit_C'
représente le produit C, avec 1 lorsque le produit est C et 0 sinon.
Affichage du DataFrame encodé
print(df_encoded)
affiche leDataFrame
avec les nouvelles colonnes générées par l'encodage One-Hot. - La colonne