À retenir
- Empêche l'ordinateur de croire qu'une catégorie est « supérieure » à une autre.
- Un seul chiffre 1 est présent par vecteur, tout le reste est à 0.
- Idéal pour des catégories sans ordre logique (couleurs, marques, pays).
L'encodage one-hot est une technique permettant de transformer des catégories de texte (comme des noms de villes ou des types d'objets) en une suite de chiffres (0 et 1) pour qu'un ordinateur puisse les traiter. Imaginez un tableau de bord avec plusieurs boutons : pour désigner un élément précis, on appuie sur un seul bouton (valeur 1) tandis que tous les autres restent relevés (valeur 0).
Étymologie
Vient de l'anglais one-hot, où « hot » (chaud) fait référence en électronique à un signal de tension haute, représentant la valeur binaire 1. Le terme décrit donc un système où une seule position est active (« chaude ») à la fois.
Exemples d'usage
- Pour classer trois types de fruits : Pomme devient
[1, 0, 0], Banane devient[0, 1, 0]et Orange devient[0, 0, 1]. - Dans un formulaire, encoder le genre : Homme
[1, 0], Femme[0, 1].
Cas d'usage
Ce concept intervient massivement en apprentissage automatique (Machine Learning) et en science des données pour convertir des variables qualitatives en variables quantitatives. On le retrouve aussi dans la conception de circuits logiques et de processeurs pour coder les états d'une machine.
Bonnes pratiques
Il ne faut pas utiliser l'encodage one-hot pour des variables qui possèdent des milliers de catégories (comme tous les mots d'une langue), car cela crée des tableaux de données immenses et vides (matrices creuses) qui saturent la mémoire. Dans ce cas, on privilégiera les embeddings.
Synonymes
Antonymes
Conseil
Si vous débutez en Python (bibliothèques Pandas ou Scikit-learn), cherchez les fonctions get_dummies ou OneHotEncoder pour mettre cela en pratique facilement sur vos jeux de données.
Questions fréquentes
Pourquoi ne pas coder les catégories par 1, 2, 3 ?
Si on utilise 1, 2 et 3 pour des couleurs, l'algorithme pourrait mathématiquement conclure que Bleu (3) est supérieur à Rouge (1), ou que la moyenne de Rouge et Bleu donne Jaune (2), ce qui n'a aucun sens logique.
Quand faut-il l'éviter ?
Quand il y a trop de catégories différentes ou quand il existe un ordre naturel entre elles (ex: Petit, Moyen, Grand).