Un encodage à chaud des catégories fréquentes

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

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.