Accéder au contenu principal

Vue d’ensemble des méthodologies d’encodage

Dans ce tutoriel, découvrez un aperçu des techniques d’encodage et des ressources avancées pour traiter les variables catégorielles.
Actualisé 19 sept. 2026  · 5 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity
pencils graphic

« Dans de nombreux projets concrets en data science, l’ensemble de données contient des variables catégorielles. Ces variables sont généralement stockées sous forme de valeurs textuelles ». (Practical Business Python) Comme l’apprentissage automatique repose sur des équations mathématiques, garder les variables catégorielles en l’état pose problème. De nombreux algorithmes acceptent les valeurs catégorielles sans manipulation supplémentaire, mais même dans ces cas, la question d’encoder ou non les variables reste ouverte. Les algorithmes qui ne prennent pas en charge les valeurs catégorielles nécessitent, eux, des méthodologies d’encodage. Passons en revue quelques méthodes.

Méthodologies d’encodage

Label encoding

Avec le label encoding, on associe chaque catégorie à un nombre ou un libellé. Les libellés choisis n’ont pas de relation entre eux. Ainsi, des catégories proches ou liées perdent cette information après encodage.

Frequency encoding

Cette approche utilise la fréquence d’apparition des catégories comme étiquettes. Lorsque la fréquence est corrélée, même partiellement, à la variable cible, elle aide le modèle à pondérer en proportion directe ou inverse, selon la nature des données.

One-hot encoding

Cette méthode associe chaque catégorie à un vecteur binaire composé de 1 et de 0 indiquant la présence ou l’absence de la caractéristique. Le nombre de vecteurs dépend des catégories que l’on souhaite conserver. Pour des variables à forte cardinalité, cette méthode génère de très nombreuses colonnes, ce qui ralentit sensiblement l’apprentissage. On confond souvent one-hot encoding et encodage « dummy » et l’on se demande quand utiliser l’un ou l’autre. Ils sont très proches, à ceci près que le one-hot crée autant de colonnes que de catégories, tandis que l’encodage « dummy » en crée une de moins. Au final, c’est au modélisateur d’en tenir compte lors de la validation.

Piège des variables fictives (dummy) :

Supposons une variable catégorielle à deux modalités. Après un one-hot encoding, deux colonnes représentent cette variable. En y regardant de plus près, un seul vecteur suffit à représenter les deux valeurs. Par exemple, avec les modalités « red » et « blue », le one-hot crée deux vecteurs, l’un pour « red », l’autre pour « blue ». Or l’information peut être apprise avec un seul vecteur, l’autre étant redondant. On peut donc en supprimer un, ce qui réduit la quantité de données à traiter par les algorithmes. Cela améliore souvent les performances du modèle et facilite son interprétation. En pratique, on gère de nombreuses variables catégorielles, parfois avec une connaissance préalable de leur lien avec les résultats. Les pratiques d’encodage permettent de structurer l’entrée des données, mais rendent aussi le processus d’apprentissage plus lourd.

Target, impact ou likelihood encoding

Le target encoding est proche du label encoding, à ceci près que les étiquettes sont corrélées directement à la cible. Par exemple, dans l’encodage par moyenne de la cible, chaque catégorie reçoit comme étiquette la valeur moyenne de la variable cible sur les données d’entraînement. Cette méthode met en évidence les relations entre catégories similaires, mais ces relations restent bornées aux catégories et à la cible. Avantages : elle ne gonfle pas le volume des données et accélère l’apprentissage. Inconvénient : la validation est plus délicate. Une régularisation est nécessaire lors de sa mise en œuvre. Voir le target encoder en python et en R.

Statistiques liées à l’encodage

La variabilité d’encodage décrit la dispersion des valeurs encodées au sein d’une même catégorie. Pour le one-hot encoding, cette variabilité dépend du moment de l’implémentation où l’on décide du nombre de catégories à conserver, c’est-à-dire celles ayant un impact suffisant sur la cible. D’autres méthodologies d’encodage présentent aussi une variabilité notable, mise en évidence au moment de la validation.

Pour mesurer la « distinguabilité » après encodage, on compte les étiquettes des catégories puis on calcule l’écart-type des étiquettes. Cela renseigne sur la capacité à distinguer les catégories encodées : sont-elles éloignées les unes des autres ou regroupées ?

Gardez à l’esprit que si vous optez pour un encodage trop simple lors de la construction d’un modèle, celui-ci risque d’être biaisé. Pour aller plus loin, consultez cette discussion. Selon le type de modèle, choisissez une méthodologie d’encodage adaptée : pour une régression, vous pouvez utiliser la moyenne de la cible ; pour une classification, l’encodage par fréquence relative peut être indiqué.

Pour finir, voici un transformeur au style scikit-learn qui aide à encoder des variables catégorielles avec différentes techniques.

category_encoders

Cette bibliothèque scikit-learn propose les techniques suivantes actuellement implémentées :

  • Ordinal
  • One-Hot
  • Binary
  • Helmert Contrast
  • Sum Contrast
  • Polynomial Contrast
  • Backward Difference Contrast
  • Hashing
  • BaseN
  • LeaveOneOut
  • Target Encoding

Elle accepte les dataframes pandas en entrée et peut transformer les données. Elle est aussi compatible avec les pipelines sklearn ; pour plus de détails, rendez-vous ici.

Pour approfondir scikit-learn, suivez le cours Supervised Learning with scikit-learn de DataCamp.

Sujets
Apprentissage automatique

Approfondir le machine learning

Cours

Comprendre le Machine Learning

2 h
308.2K
Une introduction au machine learning sans codage.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow