Comment gérer les déséquilibres de classes dans votre jeu de données

Guide pratique pour identifier et gérer les déséquilibres de classes dans vos jeux de données, avec techniques adaptées pour l'entraînement et l'évaluation.

kafu 20/04/2025 19 vues

Comment gérer les déséquilibres de classes dans votre jeu de données

Ce guide pratique explique comment identifier et résoudre les problèmes de déséquilibre de classes dans vos datasets de vision par ordinateur. Le déséquilibre de classes survient lorsque certaines catégories sont fortement sous-représentées par rapport à d'autres, ce qui peut conduire à des modèles biaisés performant mal sur les classes minoritaires.

Identification du déséquilibre

Avant d'appliquer des solutions, il est important de quantifier précisément le déséquilibre dans votre jeu de données.

Analyse de la distribution des classes

Utilisez l'outil d'analyse de dataset de Techsolut pour visualiser la répartition des classes :

  1. Accédez à l'onglet "Dataset" de votre projet
  2. Cliquez sur "Statistiques et analyse"
  3. Consultez le graphique "Distribution des classes"
  4. Examinez les métriques spécifiques :
  5. Ratio de déséquilibre : rapport entre la classe la plus fréquente et la moins fréquente
  6. Facteur d'imbalance : mesure combinée tenant compte de toutes les classes

Seuils critiques

En général, on considère qu'un dataset est significativement déséquilibré lorsque :
- Le ratio entre les classes majoritaires et minoritaires dépasse 10:1
- Certaines classes représentent moins de 5% du total des exemples
- La distribution des classes s'écarte fortement d'une distribution uniforme ou naturelle attendue

Stratégies au niveau des données

1. Suréchantillonnage des classes minoritaires

Le suréchantillonnage consiste à augmenter artificiellement le nombre d'exemples dans les classes sous-représentées.

Comment l'appliquer dans Techsolut :

  1. Dans l'onglet "Préparation des données", sélectionnez "Équilibrage de classes"
  2. Choisissez la méthode "Suréchantillonnage"
  3. Sélectionnez les classes à suréchantillonner ou utilisez "Auto" pour toutes les classes minoritaires
  4. Configurez les options :
  5. Méthode simple : reproduction exacte des exemples existants
  6. SMOTE : génération de nouveaux exemples synthétiques par interpolation
  7. Augmentation ciblée : application intensive d'augmentation uniquement sur classes minoritaires

Avantages :

  • Préserve tous les exemples disponibles
  • N'augmente pas le temps d'entraînement par époque
  • Particulièrement efficace lorsque les classes minoritaires ont peu d'exemples

Inconvénients :

  • Risque de surapprentissage sur les classes minoritaires
  • Peut prolonger le temps total d'entraînement (plus d'exemples par époque)

2. Sous-échantillonnage des classes majoritaires

Le sous-échantillonnage réduit le nombre d'exemples dans les classes surreprésentées.

Comment l'appliquer :

  1. Dans l'onglet "Préparation des données", sélectionnez "Équilibrage de classes"
  2. Choisissez la méthode "Sous-échantillonnage"
  3. Configurez les options :
  4. Aléatoire : sélection aléatoire d'un sous-ensemble d'exemples
  5. Clustering : sélection représentative basée sur des clusters
  6. ENN (Edited Nearest Neighbors) : suppression d'exemples ambigus ou non représentatifs

Avantages :

  • Réduit le temps d'entraînement
  • Peut améliorer la généralisation en supprimant des exemples redondants
  • Limite le biais vers les classes majoritaires

Inconvénients :

  • Perte potentielle d'informations utiles
  • Peut réduire la performance si les données supprimées étaient informatives

3. Combinaison de techniques

Pour les déséquilibres extrêmes, une approche hybride est souvent la plus efficace.

Technique SMOTE-Tomek :

  1. Application de SMOTE pour générer des exemples synthétiques des classes minoritaires
  2. Suivie par Tomek Links pour éliminer les paires d'exemples de classes différentes qui sont proches dans l'espace des caractéristiques

Comment l'appliquer :

  1. Dans l'onglet "Préparation avancée", sélectionnez "Équilibrage hybride"
  2. Choisissez "SMOTE-Tomek" ou "SMOTEBoost"
  3. Configurez le ratio d'équilibrage cible

Stratégies au niveau de l'algorithme

1. Pondération des classes dans la fonction de perte

Attribuez un poids plus important aux erreurs commises sur les classes minoritaires.

Comment l'appliquer :

  1. Dans l'onglet "Entraînement", section "Configuration avancée"
  2. Activez "Pondération des classes"
  3. Choisissez la méthode de pondération :
  4. Inversement proportionnelle : poids = 1 / (fréquence de classe)
  5. Logarithmique : poids = log(N / fréquence de classe)
  6. Effective Number : poids basés sur le nombre effectif d'exemples
  7. Personnalisée : spécifiez manuellement les poids par classe

Exemple de configuration automatique :

# Proportion des classes dans le dataset
# Classe A: 70%, Classe B: 20%, Classe C: 10%

# Pondération inverse
# Classe A: 1/0.7 = 1.43
# Classe B: 1/0.2 = 5.0
# Classe C: 1/0.1 = 10.0

# Normalisé pour la stabilité
# Classe A: 0.087
# Classe B: 0.305
# Classe C: 0.608

2. Fonctions de perte spécialisées

Certaines fonctions de perte sont spécifiquement conçues pour gérer les déséquilibres.

Options disponibles dans Techsolut :

  1. Focal Loss
  2. Atténue la contribution des exemples bien classifiés pour se concentrer sur les difficiles
  3. Paramètres : gamma (facteur de modulation) et alpha (pondération de classe)
  4. Recommandé pour les problèmes de détection d'objets avec déséquilibre extrême

  5. Dice Loss

  6. Basée sur le coefficient de Dice, moins sensible au déséquilibre
  7. Particulièrement adaptée à la segmentation où le déséquilibre spatial est courant

  8. Asymmetric Loss

  9. Version asymétrique de la perte qui traite différemment les faux positifs et faux négatifs
  10. Utile lorsque l'un des types d'erreur est plus critique que l'autre

3. Techniques d'échantillonnage pendant l'entraînement

Modifiez la stratégie d'échantillonnage des batches pour équilibrer la représentation des classes.

Options disponibles :

  1. Échantillonnage pondéré par classe
  2. Configuration : Activez "Échantillonnage équilibré" dans les paramètres d'entraînement
  3. Chaque batch contient un nombre similaire d'exemples de chaque classe

  4. Two-phase learning

  5. Phase 1 : Entraînement sur un dataset équilibré
  6. Phase 2 : Fine-tuning sur la distribution réelle avec taux d'apprentissage réduit

Stratégies d'évaluation

Il est crucial d'utiliser des métriques d'évaluation appropriées pour les datasets déséquilibrés.

Métriques recommandées

  1. F1-score, Précision et Rappel
  2. Plus informatifs que l'exactitude (accuracy) dans un contexte déséquilibré
  3. Disponibles par classe pour analyser les performances sur les minorités

  4. Courbe Précision-Rappel (PR)

  5. Plus informative que la courbe ROC pour les datasets très déséquilibrés
  6. Accessible dans l'onglet "Évaluation" > "Courbes PR"

  7. Matrice de confusion normalisée

  8. Normalisation par ligne (rappel par classe) ou colonne (précision par classe)
  9. Aide à identifier les confusions spécifiques entre classes

  10. Cohen's Kappa et Matthews Correlation Coefficient

  11. Métriques qui tiennent compte de l'accord attendu par chance
  12. Utiles pour évaluer globalement la performance sur toutes les classes

Approches avancées

1. Apprentissage par curriculum

Ordonnez l'entraînement pour exposer graduellement le modèle à des exemples plus difficiles.

Comment l'implémenter :

  1. Dans l'onglet "Stratégies avancées", activez "Curriculum Learning"
  2. Définissez la progression :
  3. Commencez par un dataset équilibré
  4. Introduisez progressivement le déséquilibre réel
  5. Terminez avec la distribution naturelle

2. Cascades de classificateurs

Utilisez une approche en plusieurs étapes pour traiter séparément les différents niveaux de déséquilibre.

Exemple d'implémentation :

  1. Premier niveau : classificateur binaire "classe rare vs reste"
  2. Second niveau : classification fine sur les exemples identifiés comme potentiellement de la classe rare

3. Apprentissage par transfert ciblé

Exploitez des modèles pré-entraînés avec une attention particulière aux classes minoritaires.

Technique recommandée :

  1. Fine-tuning en deux phases :
  2. Phase 1 : Dégeler uniquement les dernières couches et entraîner sur un dataset équilibré
  3. Phase 2 : Fine-tuning complet avec pondération des classes

Validation et test

Stratification essentielle

La stratification assure une répartition proportionnelle des classes entre les ensembles d'entraînement, validation et test.

Configuration dans Techsolut :

  1. Dans "Division des données", activez "Stratification"
  2. Utilisez "Maintenir la distribution de classe" pour préserver les proportions originales
  3. Ou utilisez "Équilibrer la validation" pour sur-représenter les classes minoritaires dans la validation

Validation croisée adaptée

Pour les classes très minoritaires, utilisez la validation croisée stratifiée.

Configuration recommandée :

  1. K-Fold stratifié : 5 à 10 folds selon la taille du dataset
  2. Répétition multiple pour plus de robustesse (3-5 répétitions)

Exemple pratique : Détection d'anomalies industrielles

Scénario : Détection de défauts rares (0.5% des exemples) sur des produits manufacturés.

Approche recommandée :

  1. Préparation des données :
  2. Augmentation des images de défauts avec rotations, miroirs, variations de contraste
  3. Synthèse de nouveaux exemples avec GAN conditionnels
  4. Sous-échantillonnage modéré des exemples normaux par clustering

  5. Configuration du modèle :

  6. Architecture : EfficientDet ou RetinaNet (conçus pour déséquilibres)
  7. Focal Loss avec gamma=2.0, alpha=0.75
  8. Initialisation des biais pour favoriser initialement les classes rares

  9. Stratégie d'entraînement :

  10. Two-phase learning
  11. Échantillonnage équilibré des batches
  12. Callbacks de sauvegarde basés sur le rappel des classes minoritaires

  13. Évaluation :

  14. Métrique principale : F1-score pondéré par classe
  15. Seuil de confiance optimisé pour maximiser le rappel sans trop dégrader la précision

Conclusion

Le déséquilibre de classes est un défi omniprésent dans les applications réelles de vision par ordinateur. Une approche systématique combinant des techniques au niveau des données, des algorithmes et de l'évaluation permet généralement d'obtenir les meilleurs résultats.

Rappelez-vous qu'il n'existe pas de solution universelle - expérimentez avec différentes approches et utilisez les fonctionnalités d'analyse de Techsolut pour déterminer la stratégie optimale pour votre cas spécifique.

Consignez vos expérimentations dans l'onglet "Notes et expériences" pour garder une trace des méthodes essayées et de leurs performances relatives.

Dans cette page
Articles similaires
IA