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.
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%).
É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.)
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