Blogue du CRIM - Manipuler les variables catégoriques dans un jeu de données

Blogue du CRIM - Manipuler les variables catégoriques dans un jeu de données

Publié le 12/07/18

MANIPULER LES VARIABLES CATÉGORIQUES DANS UN JEU DE DONNÉES

par Farooq Sanni et Martin Sortir

Texte publié sur Medium

D’une manière générale, un jeu de données (on exclut les données textuelles et les images) comporte deux types de variables : les variables quantitatives et les variables qualitatives.

Dès l’antiquité, le concept de catégories a été formalisé par Aristote dans son ouvrage Les Catégories.

Une variable quantitative est une variable qui admet des valeurs numériques, continues ou discrètes. Par exemple, la taille d’un individu, le salaire d’un employé, la vitesse d’une voiture sont des variables quantitatives. Ces variables étant numériques, leur traitement par les algorithmes d’apprentissage automatique est plus simple, c’est-à-dire qu’elles peuvent être utilisées directement sans nécessiter une transformation préalable.

Une variable qualitative quant à elle prend des valeurs appelées catégories, modalités ou niveaux qui n’ont pas de sens quantitatif. Par exemple, le genre d’un individu est une variable catégorique avec deux (ou plus) modalités : masculin et féminin. Aussi, des statistiques telles que la moyenne n’ont pas de sens sur ces données. La présence de ces variables dans les données complique généralement l’apprentissage. En effet, la plupart des algorithmes d’apprentissage automatique prennent des valeurs numériques en entrée. Ainsi, il faut trouver une façon de transformer nos modalités en données numériques.

De plus, la façon dont cette transformation est opérée est très importante. En effet, le codage des variables catégoriques nuit généralement à la performance des algorithmes d’apprentissage. Un codage peut s’avérer plus judicieux qu’un autre. Par exemple, les forêts aléatoires, un type d’algorithme d’apprentissage automatique, peinent à capturer l’information des variables catégoriques comportant un grand nombre de modalités si celles-ci sont traitées avec la technique d’encodage one-hot encoding présentée à la section suivante. C’est ainsi que des algorithmes d’apprentissage plus spécifiques tels que Catboost, que nous décrivons plus bas, ont vu le jour.

Dans cet article, nous présentons différentes méthodes et astuces pour gérer les variables catégoriques.

L’exemple ci-dessous sert d’illustration à certaines méthodes tout le long de l’article.

Exemple de jeu de données

One-hot encoding

Le one hot encoding est la méthode la plus populaire pour transformer une variable catégorique en variable numérique. Sa popularité réside principalement dans la facilité d’application. De plus, pour beaucoup de problèmes, elle donne de bons résultats. Son principe est le suivant :

Considérons une variable catégorique X qui admet modalités m1m2, …, mK. Le one hot encoding consiste à créer variables indicatrices, soit un vecteur de taille K qui a des 0 partout et un 1 à la position correspondant à la modalité mi. On remplace donc la variable catégorique par variables numériques.

Si l’on considère l’exemple précédent et qu’on suppose que les catégories disponibles sont uniquement celles affichées, on a alors :

Résultat du one-hot encoding

Avantages : simple, intuitif, rapide à mettre en place.

Inconvénients : Lorsque le nombre de modalités est élevé (supérieur à 100 par exemple), le nombre de nouvelles variables créées est également élevé. Ainsi, on se retrouve avec un jeu de données beaucoup plus volumineux, qui occupe plus d’espace en mémoire et dont le traitement par les algorithmes d’apprentissage devient plus difficile. Aussi, certains algorithmes, notamment quelques implémentations des forêts d’arbres décisionnels, n’arrivent pas à exploiter au mieux les informations contenues dans ces variables lorsque ce nombre de modalités est trop grand (voir [1] pour plus de détails).

Réduction du nombre de modalités

La connaissance métier peut aider à réduire le nombre de modalités. En effet, une compréhension des catégories peut permettre de les regrouper efficacement. Un regroupement naturel se fait lorsque les modalités sont hiérarchiques, c’est-à-dire qu’il est possible de définir une nouvelle catégorie qui englobe d’autres catégories. Supposons une variable dont les catégories sont les quartiers d’une ville : ces catégories peuvent par exemple être regroupées par arrondissement, c’est-à-dire que les quartiers d’un même arrondissement auront la même modalité. Il s’agit d’un cas assez fréquent. Toutefois, signalons que ces regroupements peuvent introduire un biais dans le modèle.

Une seconde façon de s’en tirer avec un nombre de catégories élevé consiste à essayer de fusionner les modalités à faible effectif. On peut combiner les modalités qui apparaissent très peu fréquemment dans les données. On effectue un tableau des effectifs des modalités, et celles dont la fréquence est inférieure à un certain seuil sont mises ensemble dans une même catégorie «autre» par exemple. Ensuite, un one-hot encoding peut être appliqué sur la nouvelle variable.

Variables ordinales

Les variables ordinales sont des variables catégoriques qui présentent une notion d’ordre, c’est-à-dire qu’un classement de leurs modalités est possible. Par exemple, la variable Tranche d’âge qui prendrait les valeurs bébé, adolescent, enfant, adulte, personne âgée est une variable ordinale. En effet nous pouvons ordonner les modalités de manière croissante comme suit : bébé < enfant < adolescent < adulte < personne âgée.

Dans le cas de telles variables, une alternative au one-hot-encoding consiste à utiliser le rang pour encoder les modalités, ce qui rend alors la variable quantitative. Dans l’exemple Tranche d’âge, nous aurions par exemple bébé = 1, enfant = 2, adolescent=3, etc.

La connaissance des modalités peut permettre d’associer d’autres valeurs numériques aux modalités, autre que le rang. Dans le cas de Tranche d’âge, nous savons que l’adolescence va d’environ 12 à 17 ans, l’âge adulte de 25 à 65 ans. Ainsi la moyenne ((12 +17) / 2 = 14.5) de la plage de valeurs peut être préférée au rang.

Les jours de la semaine et les jours du mois peuvent être également traités comme des variables ordinales.

Impact encoding

Lorsque le nombre de catégories devient très grand l’encodage par variables indicatrices peut devenir incommode. Une méthode alternative au clusteringou à la troncation des catégories consiste à caractériser les catégories par le lien qu’elles entretiennent avec la variable cible y : il s’agit de l’impact encoding.

Cette méthode est aussi connue sous les noms : likelihood encodingtarget codingconditional-probability encodingweight of evidence ([9]).

Définition : Pour un problème de régression ayant pour variable cible y, soit X, une variable catégorique ayant K catégories m1, …, mK. Chaque catégorie mk est encodée par sa valeur d’impact :

Lire la suite sur Medium

Devenez membre du CRIM

Devenir membre du CRIM, c’est bénéficier du plus grand réseau d’entreprises en TI au Québec. C’est un accès privilégié à notre expertise en recherche et développement. Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.

514 840-7993

Événement à venir

  • HASE 2019
    3/01/19 2019h00
    Hangzhou, China
    Le CRIM présentera deux articles à la 19e édition du IEEE International Symposium on High Assurance Systems Engineering, qui se déroulera du 3 au 5 janvier 2019 à Hangzhou, Chine
    +
  • #Votez pour vos projets préférés dans chacune des 4 catégories! Découvrez ces initiatives qui se démarquent et qui… https://t.co/9KD61F8wmP
  • Magazine L'actualité RT @Lactualite: L’intelligence artificielle adopte nos pires préjugés sexistes et racistes. Et comme elle est appelée à prendre énormément…