Débutant
🧠 Fondamentaux
10 XP
0 personnes ont réussi
OneHotEncoding avec get_dummies
Le LabelEncoder a un probleme : il cree un ordre artificiel. Si 'bleu' vaut 0 et 'vert' vaut 2, le modele pourrait croire que 'vert' est deux fois plus important que 'bleu'. Pour les couleurs ou les villes, ca n'a aucun sens.
Le One-Hot Encoding resout ce problème. Au lieu d'une seule colonne avec des nombres, on crée une colonne par catégorie, avec 1 si la ligne appartient a cette catégorie, 0 sinon.
En pandas, pd.get_dummies(df, columns=['colonne']) fait ca automatiquement.
Écris une fonction one_hot_encode(df, colonnes) qui prend un DataFrame et une liste de noms de colonnes a encoder, et renvoie le DataFrame avec ces colonnes transformees en one-hot.
import pandas as pd
df = pd.DataFrame({'couleur': ['rouge', 'bleu'], 'taille': [10, 20]})
result = one_hot_encode(df, ['couleur'])
assert 'couleur_rouge' in result.columns
assert 'couleur_bleu' in result.columns
assert 'couleur' not in result.columns