Quand dois-je équilibrer les classes dans un ensemble de données d'entraînement?

29

J'ai suivi un cours en ligne, où j'ai appris, que des classes déséquilibrées dans les données de formation pouvaient entraîner des problèmes, car les algorithmes de classification optent pour la règle de la majorité, car cela donne de bons résultats si le déséquilibre est trop important. Dans une affectation, il fallait équilibrer les données en sous-échantillonnant la classe majoritaire.

Dans ce blog, cependant, quelqu'un prétend que des données équilibrées sont encore pires:

https://matloff.wordpress.com/2015/09/29/unbalanced-data-is-a-problem-no-balanced-data-is-worse/

C'est lequel alors? Dois-je équilibrer les données ou non? Cela dépend-il de l'algorithme utilisé, car certains pourraient être capables de s'adapter aux proportions déséquilibrées des classes? Si oui, lesquels sont fiables sur les données non équilibrées?

Zelphir Kaltstahl
la source

Réponses:

28

Le raisonnement intuitif a été expliqué dans le blogpost:

Si notre objectif est la prédiction, cela entraînera un biais certain. Et pire encore, ce sera un biais permanent, dans le sens où nous n'aurons pas d'estimations cohérentes à mesure que la taille de l'échantillon augmente.

Donc, sans doute le problème des données (artificiellement) équilibrées est pire que le cas déséquilibré.

Les données équilibrées sont bonnes pour la classification, mais vous perdez évidemment des informations sur les fréquences d'apparition, ce qui va affecter les mesures de précision elles-mêmes, ainsi que les performances de production.

Disons que vous reconnaissez des lettres manuscrites de l'alphabet anglais (26 lettres). Surbalancer l'apparence de chaque lettre donnera à chaque lettre une probabilité d'être classée (correctement ou non) à peu près 1/26, donc le classificateur oubliera la distribution réelle des lettres dans l'échantillon d'origine. Et c'est ok quand le classificateur est capable de généraliser et de reconnaître chaque lettre avec une grande précision .

Mais si la précision et surtout la généralisation ne sont pas "si élevées" (je ne peux pas vous donner de définition - vous pouvez les considérer comme un "pire des cas") - les points mal classés seront très probablement répartis également entre toutes les lettres , quelque chose comme:

"A" was misclassified 10 times
"B" was misclassified 10 times
"C" was misclassified 11 times
"D" was misclassified 10 times
...and so on

Par opposition à sans équilibrage (en supposant que "A" et "C" ont des probabilités d'apparition beaucoup plus élevées dans le texte)

"A" was misclassified 3 times
"B" was misclassified 14 times
"C" was misclassified 3 times
"D" was misclassified 14 times
...and so on

Ainsi, les cas fréquents obtiendront moins d'erreurs de classification. Que ce soit bon ou non dépend de votre tâche. Pour la reconnaissance de texte naturel, on pourrait soutenir que les lettres avec des fréquences plus élevées sont plus viables, car elles préserveraient la sémantique du texte original, rapprochant la tâche de reconnaissance de la prédiction (où la sémantique représente les tendances ). Mais si vous essayez de reconnaître quelque chose comme une capture d'écran de la clé ECDSA (plus d'entropie -> moins de prédiction) - garder les données déséquilibrées n'aiderait pas. Donc, encore une fois, cela dépend.

La distinction la plus importante est que l'estimation de la précision est elle-même biaisée (comme vous pouvez le voir dans l'exemple de l'alphabet équilibré), de sorte que vous ne savez pas comment le comportement du modèle est affecté par les points les plus rares ou les plus fréquents.

PS Vous pouvez toujours suivre les performances d'une classification déséquilibrée avec des mesures de précision / rappel d' abord et décider si vous devez ajouter un équilibrage ou non.


EDIT : Il existe une confusion supplémentaire qui réside dans la théorie de l'estimation précisément dans la différence entre la moyenne de l'échantillon et la moyenne de la population. Par exemple, vous connaissez peut-être (sans doute) la distribution réelle des lettres anglaises dans l'alphabet , mais votre échantillon (ensemble de formation) n'est pas assez grand pour l'estimer correctement (avec ). Ainsi, afin de compenser un , il est parfois recommandé de rééquilibrer les classes en fonction de la population elle-même ou des paramètres connus d'un échantillon plus large.p(Xje|θ)p(Xje|θ^)θ i - θ iθ^je-θje(donc meilleur estimateur). Cependant, dans la pratique, il n'y a aucune garantie que "un plus grand échantillon" soit distribué de manière identique en raison du risque d'obtenir des données biaisées à chaque étape (disons les lettres anglaises collectées dans la littérature technique vs fiction vs la bibliothèque entière), de sorte que l'équilibrage pourrait toujours être nuisible.

Cette réponse devrait également clarifier les critères d'applicabilité de l'équilibrage:

Le problème du déséquilibre des classes est dû au fait qu'il n'y a pas suffisamment de schémas appartenant à la classe minoritaire, et non au rapport des schémas positifs et négatifs en soi. Généralement, si vous avez suffisamment de données, le «problème de déséquilibre de classe» ne se pose pas

En conclusion, l'équilibrage artificiel est rarement utile si l'ensemble d'entraînement est suffisamment grand. L'absence de données statistiques provenant d'un plus grand échantillon distribué de manière identique ne suggère également aucun besoin d'équilibrage artificiel (en particulier pour la prédiction), sinon la qualité de l'estimateur est aussi bonne que la «probabilité de rencontrer un dinosaure»:

Quelle est la probabilité de rencontrer un dinosaure dans la rue?

1/2 vous rencontrez un dinosaure ou vous ne rencontrez pas de dinosaure

dk14
la source
5
Je pense qu'en plus de l'explication du problème, l'important point à retenir de cette réponse est qu'il faut d'abord essayer de déséquilibrer et vérifier ses résultats et seulement si nécessaire faire l'équilibrage et vérifier son résultat. +1
Zelphir Kaltstahl
Donc, en d'autres termes, avec des classes uniformément réparties dans le sous-ensemble de formation, le modèle perdra sa précision dans les données invisibles, non? Mais, dans le cas contraire, lorsque vous essayez d'extraire au hasard des entrées d'un ensemble de données pour vos sous-ensembles de formation / test, votre classificateur fonctionnera-t-il mieux?
Christos K.
@ChristosK. Comme beaucoup l'ont dit, lorsque vous voyez le problème comme une classification, il est difficile de raisonner sur la prédiction. Dans tous les cas, si vous supprimez le biais (échantillon «au hasard») - vous avez besoin d'un plus grand échantillon pour améliorer les performances. C'est juste que «généralement» l'échantillon est assez grand pour préserver la sémantique, donc un surpoids ne ferait que blesser et agir comme un marteau de régularisation qui «aplatit» tout sans considération. De plus, comme le suggère la métaphore des dinosaures, «équilibré» ne signifie pas «même» - vous ne faites un bon équilibrage que lorsque vous savez que certaines probabilités sont déformées dans un échantillon «aléatoire».
dk14
1
@ChristosK. Merci pour quelques clarifications. Ce n'est pas la même chose que je voulais dire, mais l'approche est très similaire. La recommandation habituelle pour l'applicabilité du k-fold est de le faire lorsque votre échantillon initial est «un peu petit». Pas sûr, mais le pliage ne devrait pas faire de mal de toute façon - c'est juste qu'il faut plus de runs, et moins vous vous souciez de la prédiction, moins vous vous souciez de la généralisation / performance aussi tautologique que cela puisse paraître :). Mais dans l'ensemble - k-fold signifie essentiellement moins de biais.
dk14
1
@ChristosK. Oh, et comme avertissement, le rapport spam / non-spam peut être une variable aléatoire non stationnaire en soi. Avec toutes ces «fausses nouvelles», «trolls russes» et autres choses, je ferais attention à de telles hypothèses - le ratio pourrait également être biaisé. Vous voudrez peut-être d'abord évaluer PrecisionRecall sur vos classificateurs, si quelque chose est sous-échantillonné - je préfère collecter / générer (?) Plus de données.
dk14
17

Conformément au commentaire de @ kjetil-b-halvorsen, l'adoption rapide de l'apprentissage automatique a embrouillé les chercheurs sur la prédiction par rapport à la classification. Comme je l'ai décrit plus en détail ici , la classification n'est appropriée que dans une minorité de cas. Lorsque le résultat est rare (ou trop courant), les probabilités sont tout parce que dans ce cas, on ne peut que raisonnablement parler de tendances , pas de prédire des événements individuels.

En statistiques, nous avons appris il y a quelque temps que toute méthode qui oblige à exclure certaines des données est hautement suspecte. L'objectif d'équilibrer les résultats est donc déplacé. La prédiction des tendances (probabilités) ne l'exige pas. Et une fois que vous avez estimé une probabilité, vous pouvez prendre une décision optimale en appliquant la fonction utilité / coût / perte au risque prévu.

Frank Harrell
la source
1

Cela dépend de ce que vous voulez obtenir de la classification?

Supposons qu'il s'agit d'un cancer par rapport à un non-cancer, alors la détection du cancer est vitale. Cependant, comme le non-cancer constituera la majorité de vos données, le classificateur peut essentiellement envoyer tous les cas à la classe non-cancéreuse et obtenir une très grande précision. Mais nous ne pouvons pas nous le permettre, nous avons donc essentiellement réduit les échantillons de cas non cancéreux, déplaçant essentiellement la frontière de décision de la région cancéreuse dans la région non cancéreuse.

Même dans les cas d'utilisation où la précision est notre seul objectif, l'équilibrage peut être essentiel si l'équilibre du temps de test devrait être différent du temps du train.

Par exemple, disons que vous voulez classer les mangues et les oranges, vous avez un ensemble de données de formation avec 900 mangues et 30 oranges, mais vous vous attendez à le déployer sur un marché avec des mangues et des oranges égales, alors idéalement, vous devriez échantillonner dans le rapport d'échantillonnage attendu pour maximiser précision.

Amitoz Dandiana
la source
C'est ce que j'ai compris des conférences que j'ai eues. Cependant, je ne comprends pas quand l'équilibre peut être mauvais, comme le suggère ce billet de blog. Pourquoi serait-il jamais mauvais d'équilibrer, s'il reste suffisamment de points de données pour chaque classe?
Zelphir Kaltstahl
Désolé, mais dans votre analogie, qu'est-ce que la distribution des fruits du marché a à voir avec la précision du modèle? Vous avez appris à séparer les mangues des oranges ou non. En d'autres termes, vous devriez pouvoir déployer le même modèle sur un marché uniquement orange ou mangue uniquement.
Fernando
3
Mais le problème avec l'exemple du cancer est de le considérer comme une classification , il doit être traité comme une estimation du risque . Ensuite, le problème apparent avec les classes déséquilibrées disparaît, voir stats.stackexchange.com/questions/127042/…
kjetil b halvorsen
1

Lorsque vos données sont équilibrées, vous pouvez préférer vérifier la précision métrique. Mais quand une telle situation vos données sont déséquilibrées votre précision n'est pas cohérente pour différentes itérations. Vous devez concentrer plus de métriques comme la précision (PPR), le rappel (sensibilité). Ces deux mesures doivent être équilibrées lors de la comparaison. Vous devez également vérifier le F1-Score qui est la moyenne harmonique de la précision et du rappel. Ceci s'applique à tous les algorithmes d'apprentissage automatique

ravindar madishetty
la source