Ensembles de données: ensembles de données déséquilibrés

Prenons l'exemple d'un ensemble de données contenant un libellé catégoriel dont la valeur est Positif ou Négatif. Dans un ensemble de données équilibré, le nombre d'étiquettes Positive et Negative est à peu près égal. Toutefois, si un libellé est plus courant que l'autre, l'ensemble de données est déséquilibré. L'étiquette prédominante dans un ensemble de données déséquilibré est appelée classe majoritaire. L'étiquette la moins courante est appelée classe minoritaire.

Le tableau suivant fournit des noms et des plages généralement acceptés pour différents degrés d'imbalance:

Pourcentage de données appartenant à la classe minoritaire Degré de déséquilibre
20 à 40% de l'ensemble de données Niveau modéré
1 à 20% de l'ensemble de données Moyen
< 1% de l'ensemble de données Extrême

Prenons l'exemple d'un ensemble de données de détection de virus dans lequel la classe minoritaire représente 0,5% de l'ensemble de données et la classe majoritaire 99,5%. Les ensembles de données extrêmement déséquilibrés comme celui-ci sont courants en médecine, car la plupart des sujets ne sont pas infectés par le virus.

Figure 5. Graphique à barres avec deux barres. Une barre affiche environ 200 classes négatives, l&#39;autre une classe positive.
Figure 5 : Ensemble de données extrêmement déséquilibré.

 

Les ensembles de données déséquilibrés ne contiennent parfois pas suffisamment d'exemples de classe minoritaire pour entraîner un modèle correctement. Autrement dit, avec si peu de libellés positifs, le modèle s'entraîne presque exclusivement sur les libellés négatifs et ne peut pas apprendre suffisamment sur les libellés positifs. Par exemple, si la taille de lot est de 50, de nombreux lots ne contiennent aucun libellé positif.

Souvent, en particulier pour les ensembles de données légèrement déséquilibrés et certains ensembles de données modérément déséquilibrés, le déséquilibre n'est pas un problème. Vous devez donc d'abord essayer d'entraîner l'ensemble de données d'origine. Si le modèle fonctionne bien, vous avez terminé. Si ce n'est pas le cas, le modèle non optimal fournit au moins une bonne ligne de base pour les futures expériences. Ensuite, vous pouvez essayer les techniques suivantes pour résoudre les problèmes causés par des ensembles de données déséquilibrés.

Échantillonnage et pondération

Pour gérer un ensemble de données déséquilibré, vous pouvez réduire l'échantillonnage et augmenter le poids de la classe majoritaire. Voici la définition de ces deux nouveaux termes:

  • Le sous-échantillonnage (dans ce contexte) désigne l'entraînement sur un sous-ensemble disproportionnellement faible des exemples de la classe majoritaire.
  • La pondération consiste à ajouter une pondération d'exemple à la classe sous-échantillonnée, égale au facteur de sous-échantillonnage.

Étape 1: Réduisez l'échantillon de la classe majoritaire. Prenons l'exemple de l'ensemble de données sur les virus présenté dans la figure 5, qui présente un ratio de 1 libellé positif pour 200 libellés négatifs. Le sous-échantillonnage d'un facteur 10 améliore l'équilibre pour obtenir 1 positif pour 20 négatifs (5%). Bien que l'ensemble d'entraînement obtenu soit toujours modérément déséquilibré, la proportion de positifs par rapport aux négatifs est bien meilleure que la proportion extrêmement déséquilibrée d'origine (0,5%).

Figure 6. Graphique à barres avec deux barres. Une barre affiche 20 classes négatives, l&#39;autre une classe positive.
Figure 6 : Échantillonnage par réduction de la résolution

 

Étape 2: Augmentez la pondération de la classe sous-échantillonnée: ajoutez des exemples de pondérations à la classe sous-échantillonnée. Après un sous-échantillonnage d'un facteur de 10, le poids de l'exemple doit être de 10. (Oui, cela peut sembler contre-intuitif, mais nous vous expliquerons pourquoi plus tard.)

Figure 7. Schéma en deux étapes de sous-échantillonnage et d&#39;amplification
            Étape 1: Le sous-échantillonnage extrait des exemples aléatoires de la classe majoritaire. Étape 2: L&#39;augmentation de la pondération ajoute de la pondération aux exemples sous-échantillonnés.
Image 7. Surpondération.

 

Le terme poids ne fait pas référence aux paramètres du modèle (comme w1 ou w2). Ici, le poids fait référence aux poids d'exemple, qui augmentent l'importance d'un exemple individuel pendant l'entraînement. Un exemple de pondération de 10 signifie que le modèle considère l'exemple comme 10 fois plus important (lors du calcul de la perte) qu'un exemple de pondération de 1.

La pondération doit être égale au facteur que vous avez utilisé pour sous-échantillonner:

\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]

Il peut sembler étrange d'ajouter des exemples de pondérations après la sous-échantillonnage. Après tout, vous essayez d'améliorer le modèle pour la classe minoritaire. Pourquoi donner plus de poids à la classe majoritaire ? En fait, l'accentuation de la classe majoritaire tend à réduire le biais de prédiction. Autrement dit, l'augmentation de la pondération après le sous-échantillonnage tend à réduire le delta entre la moyenne des prédictions de votre modèle et la moyenne des étiquettes de votre ensemble de données.

Ratios de rééquilibrage

À quel point devez-vous réduire l'échantillonnage et augmenter le poids pour rééquilibrer votre ensemble de données ? Pour déterminer la réponse, vous devez tester le ratio de rééquilibrage, comme vous le feriez avec d'autres hyperparamètres. Cela dit, la réponse dépend finalement des facteurs suivants:

  • Taille du lot
  • Le ratio de déséquilibre
  • Nombre d'exemples dans l'ensemble d'entraînement

Idéalement, chaque lot doit contenir plusieurs exemples de classe minoritaire. Les lots qui ne contiennent pas suffisamment de classes minoritaires seront très mal entraînés. La taille de lot doit être plusieurs fois supérieure au ratio d'imbalance. Par exemple, si le ratio d'imbalancement est de 100:1, la taille de lot doit être d'au moins 500.

Exercice: Vérifiez votre compréhension

Prenons la situation suivante :

  • L'ensemble d'entraînement contient un peu plus d'un milliard d'exemples.
  • La taille de lot est de 128.
  • Le ratio d'imbalancement est de 100:1. L'ensemble d'entraînement est donc divisé comme suit :
    • Environ un milliard d'exemples de classe majoritaire
    • Environ 10 millions d'exemples de classe minoritaire
Parmi les affirmations suivantes, lesquelles sont vraies ?
Augmenter la taille du lot à 1 024 améliorera le modèle obtenu.
Avec une taille de lot de 1 024, chaque lot comprendra en moyenne 10 exemples de classe minoritaire, ce qui devrait aider à entraîner un modèle beaucoup plus performant.
En conservant la taille de lot à 128, mais en effectuant un sous-échantillonnage (et une pondération plus élevée) à 20:1, vous améliorerez le modèle obtenu.
Grâce au sous-échantillonnage, chaque lot de 128 éléments contiendra en moyenne environ 21 exemples de classe minoritaire, ce qui devrait suffire pour entraîner un modèle utile. Notez que le sous-échantillonnage réduit le nombre d'exemples de l'ensemble d'entraînement d'un peu plus d'un milliard à environ 60 millions.
Les hyperparamètres actuels sont corrects.
Avec une taille de lot de 128, chaque lot comprendra en moyenne un exemple de classe minoritaire, ce qui peut être insuffisant pour entraîner un modèle utile.