Nous avons appris dans les sections précédentes que la haute cardinalité et les étiquettes rares peuvent faire que certaines catégories n’apparaissent que dans le jeu d’entrainement, entraînant ainsi un sur-ajustement, ou seulement dans le jeu de test, et que nos modèles ne sauraient alors pas comment noter ces observations.
Nous avons également appris précedemment, que si les variables catégorielles contiennent plusieurs étiquettes, alors en les recodant avec des variables fictives, nous élargirons considérablement l’espace des caractéristiques.
Pour éviter ces complications, nous pouvons créer des variables factices uniquement pour les catégories les plus fréquentes
Cette procédure est également appelée “encodage à chaud des catégories fréquentes”.
En fait, dans la solution gagnante de la coupe KDD 2009 : “Winning the KDD Cup Orange Challenge with Ensemble Selection”, les auteurs limitent un encodage à chaud aux 10 étiquettes les plus fréquentes de la variable. Cela signifie qu’ils ne créeraient qu’une seule variable binaire pour chacun des 10 labels les plus fréquents.
OHE des catégories les plus fréquentes ou les plus élevées équivaut à regrouper toutes les catégories restantes sous une nouvelle catégorie. Nous verrons plus en détail comment regrouper les valeurs rares dans une nouvelle catégorie dans un notebook.
Avantages de l’OHE des catégories supérieures
- Simple à mettre en œuvre
- Ne nécessite pas d’heures d’exploration des variables
- N’élargit pas massivement l’espace de présentation
- Convient aux modèles linéaires
Limitations
- N’ajoute aucune information qui pourrait rendre la variable plus prédictive
- Ne conserve pas les informations des étiquettes ignorées
Souvent, les variables catégorielles montrent quelques catégories dominantes tandis que les autres étiquettes n’ajoutent que peu d’informations. Par conséquent, l’OHE des catégories dominantes est une technique simple et utile.
Note
Le nombre de variables supérieures est fixé arbitrairement. Dans le cadre du concours KDD, les auteurs en ont sélectionné 10, mais il aurait pu y en avoir 15 ou 5 également. Ce nombre peut être choisi arbitrairement ou être dérivé de l’exploration des données.
Dans cette démo :
Nous allons voir comment effectuer un encodage à chaud avec :
- Feature-Engine
Encodage important
Il est important de sélectionner les catégories les plus importantes ou les plus fréquentes sur la base des données relatives aux trains. Ensuite, nous utiliserons ces catégories supérieures pour coder les variables dans les données de test
Des 3 variables catégorielles initiales, nous arrivons à 1994 variables.
Ces chiffres ne sont pas encore énormes et, dans la pratique, nous pourrions travailler avec eux relativement facilement. Toutefois, dans les ensembles de données de la vie réelle, les variables catégorielles peuvent être très cardinales, et avec l’OHE, nous pouvons nous retrouver avec des ensembles de données comportant des milliers de colonnes.
Un encodage à chaud des catégories supérieures avec Feature-Engine
Avantages
- rapide
- crée le même nombre de caractéristiques dans le train et le banc d’essai
Limitations
- Aucune à ma connaissance
**Note
Si la variable argument est laissée à None, alors le codeur identifiera automatiquement toutes les variables catégorielles. N’est-ce pas adorable ?
Le codeur ne codera pas les variables numériques. Donc, si certaines de vos variables numériques sont en fait des catégories, vous devrez les reformuler en tant qu’objet avant d’utiliser l’encodeur. C’est le cas pour notre catégorie idJockey
Related Posts
- Le Dauphiné Libéré : Sélections rentables sur 90 jours
- Le top des meilleurs Jockeys du monde: Eric Raffin, Christophe Soumillon et plus !
- Comment les cotes de vitesse des courses de chevaux peuvent vous aider à gagner
- Comment Fonctionne les Côtes au PMU? Découvrez le Rapport Probable et Gagnez sur le Turf!