Débutant
🧠 Fondamentaux
10 XP
0 personnes ont réussi
LabelEncoder : encoder les catégories
Un algorithme de ML ne sait pas ce que veut dire 'rouge' ou 'bleu'. Il ne comprend que les nombres. Si tu as une colonne categorielle comme la couleur, la ville ou la profession, tu dois la convertir en nombres avant de l'utiliser.
Le LabelEncoder de sklearn fait ca : il attribue un nombre entier a chaque catégorie unique. Par exemple, 'bleu' -> 0, 'rouge' -> 1, 'vert' -> 2 (ordre alphabetique).
Attention : le LabelEncoder crée un ordre artificiel (0 < 1 < 2). Pour une colonne comme 'couleur', ca n'a pas de sens. On l'utilise surtout pour la colonne cible (target) ou quand l'ordre est logique (petit/moyen/grand).
from sklearn.preprocessing import LabelEncoder le = LabelEncoder() le.fit_transform(liste_de_valeurs) # apprend et transforme en une fois le.classes_ # les catégories trouvees
Écris une fonction encoder_colonne(valeurs) qui prend une liste de strings et renvoie un dictionnaire avec : 'encodees' : la liste des valeurs encodees (en int) 'mapping' : un dictionnaire catégorie -> nombre
from sklearn.preprocessing import LabelEncoder
def encoder_colonne(valeurs):
le = LabelEncoder()
encodees = le.fit_transform(valeurs)
mapping = {classe: int(i) for i, classe in enumerate(le.classes_)}
return {'encodees': list(encodees), 'mapping': mapping}