Mise à jour 2018!
Vous pouvez créer un espace d'intégration (vecteur dense) pour vos variables catégorielles. Beaucoup d'entre vous connaissent Word2vec et fastext, qui intègrent des mots dans un espace vectoriel dense et significatif. Même idée ici - vos variables catégorielles mapperont sur un vecteur ayant une signification.
Du papier Guo / Berkhahn :
L’incorporation d’entités réduit non seulement l’utilisation de la mémoire et accélère les réseaux de neurones par rapport au codage simple, mais elle permet surtout de mapper des valeurs similaires les unes aux autres dans l’espace d’incorporation, ce qui révèle les propriétés intrinsèques des variables catégorielles. Nous l’avons appliquée avec succès lors d’une récente compétition Kaggle et avons réussi à atteindre la troisième position grâce à des fonctionnalités relativement simples.
Les auteurs ont constaté que la représentation des variables catégorielles de cette manière améliorait l'efficacité de tous les algorithmes d'apprentissage automatique testés, y compris la forêt aléatoire.
Le meilleur exemple pourrait être l'application de la technique par Pinterest pour regrouper les épingles associées:
Les employés de fastai ont mis en place des embeddings catégoriques et créé un très bon article de blog avec un cahier de démonstration pour compagnon .
Détails supplémentaires et explications
Un réseau de neurones est utilisé pour créer les intégrations, c'est-à-dire pour assigner un vecteur à chaque valeur catégorique. Une fois que vous avez les vecteurs, vous pouvez les utiliser dans n’importe quel modèle acceptant des valeurs numériques. Chaque composante du vecteur devient une variable d'entrée. Par exemple, si vous utilisez des vecteurs 3-D pour incorporer votre liste de couleurs catégorique, vous pouvez obtenir quelque chose comme: rouge = (0, 1,5, -2,3), bleu = (1, 1, 0), etc. Vous utiliseriez trois variables d'entrée dans votre forêt aléatoire correspondant aux trois composants. Pour les choses rouges, c1 = 0, c2 = 1,5 et c3 = -2,3. Pour les choses bleues, c1 = 1, c2 = 1 et c3 = 0.
Vous n'avez pas réellement besoin d'utiliser un réseau de neurones pour créer des intégrations (bien que je ne recommande pas de fuir la technique). Vous êtes libre de créer vos propres embaumements à la main ou par d'autres moyens, lorsque cela est possible. Quelques exemples:
- Mappe les couleurs en vecteurs RVB.
- Emplacements des cartes en vecteurs lat / long.
- Dans un modèle politique américain, mappez les villes sur certaines composantes vectorielles représentant l'alignement gauche / droite, le fardeau fiscal, etc.