Preprocessing et Feature Engineering: booster les performances d'un modèle IA

Auteur: Mohamed CHINY Durée necessaire pour le cours de Preprocessing et Feature Engineering: booster les performances d'un modèle IA Niveau recommandé pour le cours de Preprocessing et Feature Engineering: booster les performances d'un modèle IA Supports vidéo non disponibles pour ce cours Exercices de renforcement non disponibles pour ce cours Quiz non disponibles pour ce cours

Page 6: L'encodage des variables catégorielles: principes et méthodes

Toutes les pages

Encodage: traduire les catégories en nombres pour rendre les données exploitables

Pourquoi encoder les variables catégorielles?

L’encodage des données catégorielles constitue une étape incontournable du prétraitement (preprocessing) car la majorité des algorithmes d’apprentissage automatique ne peuvent manipuler que des variables numériques. Les catégories textuelles ou symboliques doivent donc être transformées en représentations chiffrées afin de rendre l’information exploitable par les modèles. Sans cette transformation, les algorithmes interpréteraient les chaînes de caractères comme des entités arbitraires incapables d’établir des relations ou des calculs pertinents.

Donc, l’encodage des données catégorielles sert à transformer des informations en texte (comme couleur ou niveau d’éducation) en nombres que les algorithmes peuvent comprendre. Cela permet de garder le sens des variables. A titre d'exemple, distinguer une catégorie sans ordre (ou nominale, comme rouge/bleu/vert) ou une catégorie avec ordre (ou ordinale, comme primaire/secondaire/universitaire). En choisissant la bonne méthode d’encodage (One-Hot, Label, Target...), on adapte la représentation aux besoins du modèle en évitant de créer un faux ordre, en réduisant le nombre de colonnes, en limitant la perte d’information ou même en capturant des liens utiles avec la variable cible.

En résumé, encoder les données catégorielles, c’est comme traduire le langage humain en langage mathématique pour que les algorithmes puissent exploiter toute la richesse des données.

Label Encoding: simplicité et hiérarchie

Le Label Encoding est une méthode qui consiste à attribuer un nombre entier à chaque catégorie d’une variable. Par exemple, si l’on a une variable "Niveau d’éducation" avec les valeurs "Primaire", "Secondaire" et "Universitaire", alors elles peuvent être encodées en 0, 1, 2.

L’avantage est que cette technique est simple, facile à mettre en place et compacte car elle ne crée pas de nouvelles colonnes (contrairement au One-Hot Encoding que l'on traitera juste après). Cependant, ce procédé introduit automatiquement une relation d’ordre entre les catégories. En effet, les nombres sont interprétés comme une séquence croissante. Cela peut être trompeur si la variable est nominale (sans hiérarchie naturelle). Par exemple, si l’on encode la variable Couleur avec Rouge = 0, Bleu = 1, Vert = 2, l’algorithme pourrait croire que Vert est "plus grand" que Bleu, ce qui n’a aucun sens.

En revanche, le Label Encoding est parfaitement adapté aux variables ordinales, c’est-à-dire celles où l’ordre a une signification réelle. Par exemple:
  • Niveau scolaire: Primaire (0), Secondaire (1), Universitaire (2)
  • Taille de vêtements: S (0), M (1), L (2), XL (3), XXL(4)...

Dans ces cas, l’ordre numérique reflète bien la hiérarchie naturelle des catégories et peut même aider certains modèles à mieux capter la progression ou la relation entre les valeurs.

One-Hot Encoding: éviter l’ordre artificiel

Le One-Hot Encoding est une technique d’encodage qui transforme chaque catégorie d’une variable en une nouvelle colonne binaire (0 ou 1). L’idée est de représenter la présence ou l’absence d’une catégorie sans introduire de faux ordre numérique.

Par exemple, si la variable Couleur contient trois modalités: Rouge, Vert et Bleu, alors le One-Hot Encoding crée trois colonnes: Couleur_Rouge, Couleur_Vert et Couleur_Bleu. Une voiture rouge sera représentée par (1,0,0), une voiture verte par (0,1,0), et une voiture bleue par (0,0,1).

La méthode du One-Hot Encoding est très utilisée car elle préserve la nature nominale des catégories et évite que l’algorithme interprète une hiérarchie inexistante. Son principal inconvénient est l’explosion du nombre de colonnes lorsque la variable comporte un grand nombre de modalités (par exemple, une variable Ville avec des centaines de valeurs différentes). Malgré cela, le One-Hot Encoding reste la méthode la plus intuitive et la plus sûre pour encoder des variables catégorielles nominales comme le sexe, la couleur ou le type de produit.

Binary Encoding: compacter les catégories

Le Binary Encoding est une technique intermédiaire entre le Label Encoding et le One-Hot Encoding. Elle commence par attribuer un nombre entier à chaque catégorie (comme dans le Label Encoding), puis transforme ce nombre en sa représentation binaire. Ainsi, Chaque chiffre binaire devient une nouvelle colonne.

L’intérêt est de réduire la dimensionnalité par rapport au One-Hot Encoding, tout en évitant l’ordre artificiel du Label Encoding. A titre d'exemple, imaginons une variable Ville avec 8 catégories (valeurs) différentes:
  • Étape 1: Chaque ville reçoit un numéro, donc Ville A = 1, Ville B = 2, … Ville H = 8) (Il est possible de commender à 0 et finir à 7 aussi).
  • Étape 2: Ce numéro est converti en binaire. Par exemple, Ville A (1) → 001, Ville B (2) → 010, Ville H (8) → 1000.
  • Étape 3: Chaque chiffre du code binaire devient une colonne. Ainsi, au lieu de créer 8 colonnes comme en One-Hot Encoding, on n’en crée que 3 ou 4 selon le nombre de catégories.

Cette méthode est particulièrement utile lorsque la variable contient beaucoup de modalités (par exemple des centaines de villes ou de produits) car elle permet de garder une représentation compacte tout en préservant la distinction entre catégories.

Target Encoding: relier les atégories aux cibles

Le Target Encoding est une technique d’encodage qui consiste à remplacer chaque catégorie par une statistique calculée sur la variable cible (souvent la moyenne ou la probabilité). L’idée est de donner à chaque catégorie une valeur numérique qui reflète directement son lien avec ce que l’on cherche à prédire.

Prenoms cet exemple de problème de prédiction du prix des maisons. La variable "Quartier" contient les catégories "Centre", "Banlieue", "Campagne". Avec le Target Encoding, on calcule le prix moyen des maisons dans chaque quartier:
  • Centre: 250 000 €
  • Banlieue: 180 000 €
  • Campagne: 120 000 €

Ainsi, la catégorie Quartier est remplacée par ces valeurs numériques.

L’avantage du Target Encoding est que cette méthode capture une relation statistique forte entre les catégories et la cible, ce qui peut améliorer la performance du modèle.

Cependant, le Target Encoding présente un risque de data leakage (fuite d’information) si l’on utilise directement toute la base pour calculer ces moyennes. En effet, le modèle pourrait "tricher" en ayant accès à des informations de la cible qu’il ne devrait pas connaître. Pour éviter cela, on applique généralement le Target Encoding dans le cadre d’une validation croisée ou en séparant bien les données d’entraînement et de test.

En résumé, le Target Encoding est une méthode puissante et compacte, mais elle doit être manipulée avec précaution pour rester fiable.

Méthodes avancées d’encodage

Il existe des techniques d’encodage plus sophistiquées que celles vues jusqu’ici. Parmi elles, le Word Embedding occupe une place centrale. Cette méthode permet de représenter les catégories (souvent des mots) sous forme de vecteurs continus dans un espace multidimensionnel. Ces vecteurs ne se contentent pas de distinguer les catégories mais ils capturent aussi leurs relations sémantiques. Ce type d’encodage est particulièrement utilisé dans le traitement du langage naturel (NLP), où la compréhension du sens et du contexte est essentielle.

Ces méthodes vont bien au‑delà des encodages classiques comme le Label Encoding ou le One-Hot Encoding, car elles cherchent non seulement à traduire les catégories en nombres, mais aussi à préserver et exploiter leurs relations. Elles seront abordées plus en détail dans un cours dédié au NLP et aux modèles de deep learning, où l’on verra comment elles permettent aux algorithmes de manipuler le langage humain de manière plus fine et intelligente.
Les notions théoriques présentées dans cette leçon (Label Encoding, One-Hot Encoding, Binary Encoding et Target Encoding) seront mises en pratique à travers des exemples de code et l’utilisation de datasets réels dans le prochiane leçon afin de consolider la compréhension et de montrer leur application concrète dans un pipeline de machine learning.