Introduction à l’imbalance des classes
L’un des pièges les plus fréquents – et pourtant souvent négligés – en data science est le déséquilibre des classes. Derrière ce terme se cache une problématique simple à comprendre, mais complexe à gérer : lorsque certaines catégories d’un jeu de données sont massivement surreprésentées par rapport à d’autres, cela peut gravement fausser les performances d’un modèle d’apprentissage automatique.
Imaginez que vous développiez un algorithme pour détecter des fraudes bancaires. Sur un million de transactions, peut-être qu’à peine quelques centaines sont réellement frauduleuses. Dans un tel contexte, il devient trivial pour un modèle naïf d’atteindre 99,9 % de précision… en ne détectant aucune fraude. C’est précisément le cœur du problème.
Le déséquilibre : un phénomène omniprésent
Dans le monde réel, les données sont rarement équilibrées. Les exemples abondent :
-
En médecine, la plupart des patients ne sont pas malades.
-
En cybersécurité, la majorité des connexions réseau sont légitimes.
-
En industrie, les défauts de fabrication sont rares, heureusement.
Ce déséquilibre n’est pas un défaut de conception ; il reflète souvent une réalité. Mais là où l’humain est capable de donner du poids aux exceptions critiques (comme détecter une maladie rare), un algorithme, lui, risque de généraliser à outrance… à moins qu’on ne lui apprenne à faire autrement.
Pourquoi l’accuracy est souvent trompeuse
Lorsque l’on évalue un modèle, le réflexe habituel est de regarder son accuracy : le pourcentage de bonnes prédictions. Mais en situation déséquilibrée, cette métrique devient presque inutile.
Prenons un exemple simple : un jeu de données avec 990 exemples négatifs et 10 positifs. Un modèle qui prédit systématiquement « négatif » aura une accuracy de 99 %. En apparence, c’est un excellent résultat. En réalité, le modèle n’a aucune capacité de détection de la classe positive, souvent celle qui nous intéresse.
C’est pourquoi, dans ces cas-là, il faut se tourner vers des métriques plus fines :
-
La précision (precision) mesure la proportion de prédictions positives qui sont correctes.
-
Le rappel (recall), lui, indique combien de vrais positifs ont été détectés.
-
Le F1-score combine ces deux dimensions pour fournir une évaluation globale.
-
La courbe ROC-AUC permet de visualiser la capacité du modèle à distinguer les classes, indépendamment du seuil de décision.
Ainsi, même si un modèle affiche une précision globale élevée, il pourrait avoir un rappel catastrophique sur la classe minoritaire. Et dans des contextes sensibles — médecine, finance, sécurité — c’est le rappel qui sauve des vies (ou de l’argent).
Les causes du déséquilibre
Il existe plusieurs raisons pour lesquelles un jeu de données peut être déséquilibré.
La plus fréquente est simplement statistique : dans la réalité, certains événements sont rares. Une maladie orpheline ne touchera qu’une infime partie de la population. Une fraude complexe ne surviendra qu’une fois sur mille.
Mais le déséquilibre peut aussi venir d’un biais de collecte : peut-être que certaines classes sont plus difficiles à détecter, ou que le processus d’étiquetage a omis des cas importants. Parfois, c’est un choix volontaire, pour économiser des ressources. Dans tous les cas, la conséquence est la même : le modèle est exposé à une vision partielle de la réalité.
Comment les modèles réagissent-ils au déséquilibre ?
Lorsqu’on entraîne un modèle classique de machine learning, comme une régression logistique, un arbre de décision ou même un réseau de neurones, l’objectif est d’optimiser une fonction de perte. Cette fonction, par défaut, considère toutes les erreurs comme égales. Résultat : le modèle apprend à maximiser la performance sur la classe majoritaire… au détriment de la minorité.
Il devient alors « paresseux » : il apprend que la meilleure stratégie, statistiquement, est d’ignorer la classe rare. Il y a donc un biais structurel : le modèle n’a aucune incitation à détecter l’exception.
Dans un système non corrigé, on observe souvent :
-
Un modèle qui prédit la classe majoritaire dans plus de 95 % des cas.
-
Une incapacité totale à apprendre les patterns de la classe minoritaire.
-
Un score de rappel très faible, parfois nul.
Stratégies pour lutter contre le déséquilibre
Heureusement, il existe plusieurs approches pour atténuer ce problème. Ces méthodes ne sont pas exclusives : elles peuvent être combinées pour améliorer les résultats.
Rééquilibrer les données
La stratégie la plus directe est de modifier le jeu de données lui-même pour le rendre plus équilibré.
Sur-échantillonnage (oversampling)
Cette technique consiste à augmenter artificiellement la proportion de la classe minoritaire. Cela peut se faire en dupliquant des exemples existants ou, mieux encore, en créant des exemples synthétiques. La méthode la plus connue est SMOTE (Synthetic Minority Oversampling Technique), qui génère de nouveaux points en interpolant entre des voisins proches.
Avantage : on ne perd aucune information sur la classe majoritaire.
Inconvénient : risque d’overfitting sur les données minoritaires si on les répète trop souvent.
Sous-échantillonnage (undersampling)
À l’inverse, on peut réduire le nombre d’exemples de la classe majoritaire pour équilibrer le jeu. C’est rapide, mais cela peut entraîner une perte de signal utile, surtout si le dataset n’est pas très grand.
Il existe aussi des méthodes hybrides, qui combinent les deux approches.
Modifier le modèle
Une autre approche consiste à sensibiliser le modèle au déséquilibre, sans toucher aux données.
Pondération des classes
De nombreux algorithmes acceptent un paramètre class_weight
, qui permet de donner plus d’importance aux erreurs sur la classe minoritaire.
Cela revient à « pénaliser » davantage les erreurs sur les classes rares, forçant le modèle à mieux les apprendre.
Choix d’algorithmes adaptés
Certains algorithmes, comme XGBoost, CatBoost ou LightGBM, offrent des mécanismes internes pour gérer les déséquilibres, notamment via des hyperparamètres comme scale_pos_weight
.
Adapter le seuil de décision
Dans un modèle probabiliste, la prédiction finale dépend d’un seuil (souvent 0.5). Mais on peut choisir un seuil plus bas pour détecter plus de cas rares, au prix de quelques faux positifs supplémentaires. Cela permet d’optimiser le rappel sans changer le modèle lui-même.
Créer des données synthétiques
Dans certains domaines (vision par ordinateur, NLP), il est possible d’utiliser des techniques d’augmentation de données pour enrichir la classe minoritaire. Par exemple :
-
En NLP : synonymes, traduction automatique, permutation de mots.
-
En vision : rotations, zooms, bruits, flous, etc.
Un cas concret : détection de cancer
Prenons un problème classique : identifier des tumeurs cancéreuses à partir d’images médicales. Supposons que seuls 3 % des cas sont positifs.
Un modèle naïf, sans traitement du déséquilibre, affichera peut-être 97 % d’accuracy… tout en ignorant presque totalement les patients malades. En revanche, si l’on applique une combinaison de SMOTE, de pondération des classes, et d’ajustement de seuil, on peut faire grimper le rappel sur les cas positifs au-dessus de 80 %, ce qui est critique pour une application médicale.
La question n’est donc pas : « Mon modèle est-il bon globalement ? », mais bien : « Est-il bon là où ça compte vraiment ? »
Bonnes pratiques à adopter
-
Toujours examiner la distribution des classes, dès l’exploration des données.
-
Éviter de se fier à l’accuracy seule ; préférer les courbes ROC, PR, les F1-scores, ou la matrice de confusion.
-
Utiliser une validation croisée stratifiée, pour préserver les proportions de classes dans chaque sous-échantillon.
-
Documenter les choix faits pour gérer le déséquilibre, car ils impactent fortement les performances et la reproductibilité.
Au-delà des outils : une question d’éthique
Dans certains contextes, ignorer la classe minoritaire peut avoir des conséquences graves. Un modèle qui ne détecte pas les cas d’abus, de maladies, ou de discriminations perpétue l’injustice des données.
Le rôle du data scientist n’est donc pas seulement technique : il doit être conscient des implications sociales de ses choix algorithmiques. Ce qui est « rare » dans les données peut être crucial dans la réalité.
Conclusion
Le déséquilibre des classes est une des réalités les plus fréquentes — et les plus piégeuses — en apprentissage automatique. S’il n’est pas anticipé, il conduit à des modèles aveugles, biaisés, et souvent inutiles en production.
Heureusement, de nombreuses stratégies permettent de reprendre le contrôle : du rééchantillonnage à la pondération, en passant par l’ajustement des seuils ou la création de données synthétiques. Encore faut-il les connaître, les appliquer, et surtout les adapter au contexte métier.
Car en fin de compte, le but d’un bon modèle n’est pas seulement d’être précis. C’est d’être utile.