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 pdAttributs :
Paramètre Type Description Valeur par défaut columnslist of str Spécifie les colonnes à encoder. Nonedrop_firstbool Si True, la première colonne est supprimée pour éviter la multicolinéarité.Falseprefixstr, optional Permet de spécifier un préfixe pour le nom des nouvelles colonnes. Noneprefix_sepstr, 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 pdimporte la bibliothèque pandas, utilisée ici pour manipuler des données sous forme deDataFrame.Création d’un DataFrame
Le dictionnaire
datacontient 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 leDataFrameavec les nouvelles colonnes générées par l'encodage One-Hot. - La colonne