De nombreux algorithmes d'apprentissage apprennent un seul poids par entité ou utilisent des distances entre les échantillons. Le premier est le cas des modèles linéaires tels que la régression logistique, qui sont faciles à expliquer.
Supposons que vous ayez un ensemble de données n'ayant qu'une seule caractéristique catégorielle «nationalité», avec les valeurs «UK», «French» et «US». Supposons, sans perte de généralité, que ceux-ci sont codés comme 0, 1 et 2. Vous avez alors un poids w pour cette caractéristique dans un classificateur linéaire, qui prendra une sorte de décision basée sur la contrainte w × x + b> 0 , ou de manière équivalente w × x <b.
Le problème maintenant est que le poids w ne peut pas coder un choix à trois voies. Les trois valeurs possibles de w × x sont 0, w et 2 × w. Soit ces trois éléments mènent tous à la même décision (ils sont tous <b ou ≥b), soit "UK" et "French" conduisent à la même décision, ou "French" et "US" donnent la même décision. Il n'y a aucune possibilité pour le modèle d'apprendre que "UK" et "US" devraient avoir la même étiquette, avec "French" le plus étrange.
Avec un encodage à chaud, vous agrandissez efficacement l'espace des fonctionnalités en trois fonctionnalités, qui auront chacune leur propre poids, donc la fonction de décision est désormais w [UK] x [UK] + w [FR] x [FR] + w [US] x [US] <b, où tous les x sont des booléens. Dans cet espace, une telle fonction linéaire peut exprimer toute somme / disjonction des possibilités (par exemple «UK or US», qui pourrait être un prédicteur pour quelqu'un parlant anglais).
De même, tout apprenant basé sur des mesures de distance standard (telles que les k voisins les plus proches) entre les échantillons sera confus sans encodage one-hot. Avec le codage naïf et la distance euclidienne, la distance entre le français et les États-Unis est de 1. La distance entre les États-Unis et le Royaume-Uni est de 2. Mais avec le codage one-hot, les distances par paire entre [1, 0, 0], [0, 1 , 0] et [0, 0, 1] sont tous égaux à √2.
Ce n'est pas vrai pour tous les algorithmes d'apprentissage; Les arbres de décision et les modèles dérivés tels que les forêts aléatoires, s'ils sont suffisamment profonds, peuvent gérer des variables catégorielles sans encodage one-hot.
En ce qui concerne l'augmentation des fonctionnalités en effectuant un encodage à chaud, on peut utiliser le hachage de fonctionnalités. Lorsque vous effectuez un hachage, vous pouvez spécifier que le nombre de compartiments est bien inférieur au nombre de fonctionnalités nouvellement introduites.
la source
Lorsque vous souhaitez prédire des catégories, vous souhaitez prédire les éléments d'un ensemble. Ne pas utiliser le codage one-hot revient à laisser les catégories avoir des catégories voisines (par exemple: si vous avez fait une régression avec les entiers des catégories à la place) organisées d'une certaine manière et dans un certain ordre.
Maintenant, que se passe-t-il si vous attribuez la catégorie 0 à 0, la catégorie 1 à 1 et la catégorie 2 à 2 sans encodage one-hot, et que la prédiction de votre algorithme n'est pas sûre de choisir 0 ou 2: devrait-il prédire 1 malgré il pense que c'est 0 ou 2?
Vous voyez où ça va. Il en va de même pour vos entrées de données: si elles ne doivent pas être supposées être voisines, ne les montrez pas à votre algorithme en tant que voisines.
la source