Pourquoi un chaud codant pour améliorer l'apprentissage de la machine de la performance?
J'ai remarqué que lorsque l'Un Chaud, l'encodage est utilisé sur un ensemble de données particulier (d'une matrice) et utilisé comme données d'entraînement pour les algorithmes d'apprentissage, il donne de bien meilleurs résultats à l'égard de la précision de la prédiction, par rapport à l'utilisation de la matrice d'origine lui-même en tant que données d'entraînement. Comment cette augmentation de la performance arriver?
Vous devez vous connecter pour publier un commentaire.
De nombreux algorithmes d'apprentissage, soit d'apprendre une seule % du poids de la fonction, ou ils utilisent des distances entre les échantillons. Le premier est le cas pour les modèles linéaires comme la régression logistique, qui sont faciles à expliquer.
Supposons que vous avez un jeu de données n'avoir qu'un seul catégorique de la fonction "nationalité", avec des valeurs "royaume-UNI", "français" et "NOUS". Supposons, sans perte de généralité, que ceux-ci sont codés de 0, 1 et 2. Vous disposez ensuite d'un poids w de cette fonction dans un classificateur linéaire, qui va faire une sorte de décision fondé 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 encoder un à trois choix. Les trois valeurs possibles de w×x 0, w et 2×w. Ces trois aboutissent toutes à la même décision (ils sont tous < b ou ≥b) ou "royaume-UNI" et "français" de plomb à la même décision, ou "à la française" et "NOUS" donner la même décision. Il n'y a pas de possibilité pour le modèle d'apprendre que "royaume-UNI" et "NOUS" doit être tenu de la même étiquette, "à la française" le bizarre.
Par une chaude encodage, vous avez fait exploser la fonctionnalité de l'espace à trois fonctions, qui vont obtenir leur propre poids, de sorte que la fonction de décision est maintenant w[royaume-UNI]x[royaume-UNI] + w[FR]x[FR] + w[US]x[US] < b, où tous les x sont des booléens. Dans cet espace, par exemple une fonction linéaire peut exprimer toute somme/disjonction des possibilités (par exemple, "royaume-UNI ou les etats-unis", qui pourrait être un facteur prédictif de quelqu'un qui parle anglais).
De même, tout apprenant basé sur le standard de la distance d'indicateurs (comme les k-plus proches voisins) entre les échantillons vont se confondre sans "one-hot" de l'encodage. Avec la naïveté de l'encodage et de la distance Euclidienne, la distance entre français et AMÉRICAINS est de 1. La distance entre NOUS et le royaume-UNI est 2. Mais avec le "one-hot" de l'encodage, les paires les distances entre les [1, 0, 0], [0, 1, 0] et [0, 0, 1] est égal à √2.
Ce n'est pas vrai pour tous les algorithmes d'apprentissage; les arbres de décision et des modèles dérivés tels que les forêts aléatoires, si assez profond, peut gérer des variables catégorielles sans "one-hot" de l'encodage.
This is not true for all learning algorithms; decision trees and derived models such as random forests, if deep enough, can handle categorical variables without one-hot encoding.
dans le détail? Je veux savoir pourquoi les arbres, les modèles n'ont pas besoin d'un chaud de l'encodage.Sur l'augmentation des fonctionnalités en procédant de l'une-chaude-de codage, on peut utiliser une fonction de hachage. Lorsque vous faites de hachage, vous pouvez spécifier le nombre de compartiments à être beaucoup moins que le nombre de la nouvellement introduite fonctionnalités.