Encodage avec LabelEncoder
L’encodage avec LabelEncoder permet de transformer les variables catégorielles en valeurs numériques. Cette méthode est particulièrement utile pour les modèles d’apprentissage automatique qui nécessitent des données numériques en entrée. LabelEncoder attribue un numéro unique à chaque catégorie présente dans une colonne, en effectuant un mappage des catégories sous forme de valeurs entières. Cette technique est adaptée aux variables ordinales, où l’ordre entre les catégories a du sens. Toutefois, elle n’est pas recommandée pour des variables nominales, où l’ordre n’a pas d’importance, car l’encodeur introduit une relation d’ordre qui pourrait être interprétée incorrectement par certains modèles.
Fonctions :
-
LabelEncoder()
Le LabelEncoder() est une classe de la bibliothèque sklearn.preprocessing qui permet de convertir des étiquettes (catégorielles) en valeurs numériques. Cela est souvent nécessaire pour des modèles de machine learning qui ne peuvent pas travailler directement avec des valeurs textuelles. LabelEncoder() affecte une valeur numérique unique à chaque catégorie présente dans la colonne spécifiée.
Importation :
from sklearn.preprocessing import LabelEncoder import pandas as pd
Attributs :
Paramètre Type Description Valeur par défaut fit()
method Apprend l'encodage des étiquettes. N/A transform()
method Applique l'encodage sur les données. N/A fit_transform()
method Combine fit()
ettransform()
pour une utilisation plus efficace.N/A Exemple de code :
from sklearn.preprocessing import LabelEncoder 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) # Création d'un LabelEncoder le = LabelEncoder() # Encodage de la colonne 'produit' df['produit_encoded'] = le.fit_transform(df['produit']) print(df)
Explication du code :
from sklearn.preprocessing import LabelEncoder
importe la classe LabelEncoder du modulesklearn.preprocessing
, utilisée pour convertir des données catégorielles en valeurs numériques.import pandas as pd
importe la bibliothèque pandas, utilisée ici pour manipuler les données sous forme de DataFrame.Création d’un DataFrame
Le dictionnaire
data
contient deux colonnes :'produit'
(valeurs catégorielles) et'prix'
(valeurs numériques). Certains produits sont répétés.df = pd.DataFrame(data)
transforme ce dictionnaire enDataFrame
.Encodage des catégories avec
LabelEncoder
le = LabelEncoder()
crée une instance de l'encodeur.df['produit_encoded'] = le.fit_transform(df['produit'])
encode les valeurs textuelles de la colonne'produit'
en valeurs entières. Chaque catégorie unique reçoit un identifiant numérique :'A'
→ 0'B'
→ 1'C'
→ 2
Les valeurs encodées sont stockées dans une nouvelle colonne
'produit_encoded'
.Affichage du DataFrame
print(df)
affiche leDataFrame
avec les colonnes originales et la nouvelle colonne contenant les codes numériques des produits.