Classification binaire avec des classes fortement déséquilibrées

52

J'ai un ensemble de données sous la forme de (fonctionnalités, sortie binaire 0 ou 1), mais 1 arrive assez rarement, donc juste en prédisant toujours 0, j'obtiens une précision comprise entre 70% et 90% (en fonction des données que je regarde) ). Les méthodes ML me donnent à peu près la même précision, et j'estime qu'il devrait exister certaines méthodes standard à appliquer dans cette situation, qui amélioreraient la précision par rapport à la règle de prédiction évidente.

LazyCat
la source
3
J'ai trouvé cet article très utile sur le sujet: svds.com/learning-imbalanced-classes
J. O'Brien Antognini
@ J.O'BrienAntognini C'est un très bon article!
Jinhua Wang le

Réponses:

30

Hxd1011 et Frank ont ​​raison (+1). Le rééchantillonnage et / ou l'apprentissage sensible aux coûts sont les deux principaux moyens de résoudre le problème des données déséquilibrées. la troisième consiste à utiliser des méthodes du noyau qui peuvent parfois être moins affectées par le déséquilibre de classe. Permettez-moi de souligner qu'il n'y a pas de solution miracle. Par définition, vous avez une classe qui est mal représentée dans vos échantillons.

Cela dit, je pense que les algorithmes SMOTE et ROSE seront très utiles. Frappèrent utilise efficacement un -nearest voisins approche pour exclure les membres de la classe majoritaire alors d'une manière similaire créer des exemples de synthèse d'une classe minoritaire. ROSE tente de créer des estimations des distributions sous-jacentes des deux classes en utilisant une approche bootstrap lissée et de les échantillonner pour des exemples synthétiques. Les deux sont facilement disponibles dans R, SMOTE dans les packages DMwR et ROSE dans les packages portant le même nom . SMOTE et ROSE résultent tous deux en un jeu de données d'apprentissage plus petit que celui d'origine.k

Je dirais probablement qu'une métrique meilleure (ou moins mauvaise) pour le cas de données déséquilibrées utilise la de Cohenk et / ou la caractéristique sous la courbe de récepteur . Le kappa de Cohen contrôle directement la précision attendue, l'ASC étant fonction de la sensibilité et de la spécificité, la courbe est insensible aux disparités dans les proportions de la classe. Encore une fois, notez que ce ne sont que des métriques qui devraient être utilisées avec un gros grain de sel. Vous devez idéalement les adapter à votre problème spécifique en tenant compte des gains et des coûts que les classifications correctes et erronées véhiculent dans votre cas. J'ai trouvé qu'en regardant les courbes de levageest en fait plutôt informatif à cet égard. Indépendamment de votre métrique, vous devez essayer d’utiliser un test séparé pour évaluer les performances de votre algorithme. justement à cause de la classe, un sur-ajustement déséquilibré est d'autant plus probable qu'un test hors échantillon est crucial.

L’article récent le plus populaire sur le sujet est probablement Learning from Imbalanced Data de He et Garcia. Cela donne un très bon aperçu des points soulevés par moi-même et dans d’autres réponses. De plus, je pense que l' explication détaillée du sous- échantillonnage des déséquilibres de classe , présentée par Max Kuhn dans le paquet caret , constitue une excellente ressource pour obtenir un exemple de structure montrant comment le sous-échantillonnage / suréchantillonnage ainsi que la création de données synthétiques peuvent être mesurés. l'un contre l'autre.

usεr11852 dit Réintégrer Monic
la source
Une troisième mesure un peu populaire (et encore une fois pas très appropriée) est la surface sous la courbe de la courbe précision-rappel. Davis & James, 2006 paper est considéré comme un classique en la matière; CV a un bon fil aussi . J'ai récemment vu un article intitulé « Le tracé de précision-rappel est plus informatif que le tracé ROC lors de l'évaluation de classificateurs binaires sur des ensembles de données déséquilibrés », vous pouvez donc le vérifier également.
usεr11852 dit Rétablir Monic
1
Pour une implémentation python de diverses techniques de ré-échantillonnage des données, je recommande le paquet déséquilibre-apprendre: github.com/scikit-learn-contrib/imbalanced-learn
Vadim Smolyakov
AUPRC est plus informatif que AUROC pour les distributions de classes très déséquilibrées. Détails non inclus ici car il s'agit d'un commentaire. Parmi de nombreuses sources, l'une est ici .
Zhubarb
15

Premièrement, la métrique d'évaluation pour les données déséquilibrées ne serait pas l'exactitude. Supposons que vous détectiez une fraude, que 99,9% de vos données ne sont pas frauduleuses. Nous pouvons facilement créer un modèle factice avec une précision de 99,9%. (il suffit de prédire toutes les données non frauduleuses).

Vous souhaitez modifier votre métrique d'évaluation de précision à autre chose, telle que score F1 ou précision et rappel . Dans le deuxième lien que j'ai fourni. Il existe des détails et des intuitions sur les raisons pour lesquelles le rappel de précision fonctionnera.

Pour les données très déséquilibrées, la construction d'un modèle peut être très difficile. Vous pouvez jouer avec la fonction de perte pondérée ou modéliser une classe seulement. comme une classe SVM ou un gaussien à variables multiples (comme le lien que j'ai fourni précédemment).

Haitao Du
la source
2
+1 Bel exemple et bonne mention sur le SVM à classe unique. Je pense cependant que le score est un peu trop lourd, ignorant le vrai négatif à tous égards. F1
usεr11852 dit Rétablir Monic le
le lien vers "précision et rappel" est mort?
Jason
13

Les problèmes de déséquilibre de classe peuvent être résolus avec un apprentissage sensible au coût ou un rééchantillonnage. Découvrez les avantages et les inconvénients de l'apprentissage sensible au coût par rapport à l'échantillonnage coproduit ci-dessous:


{1} donne une liste des avantages et des inconvénients de l'apprentissage sensible au coût par rapport à l'échantillonnage:

2.2 Échantillonnage

Le suréchantillonnage et le sous-échantillonnage peuvent être utilisés pour modifier la répartition par classe des données d'apprentissage et les deux méthodes ont été utilisées pour traiter le déséquilibre des classes [1, 2, 3, 6, 10, 11]. La modification de la répartition par classe des données de formation facilite l'apprentissage avec des ensembles de données très asymétriques, car elle impose des coûts de classification erronés non uniformes. Par exemple, si l’on modifie la répartition par classe de l’ensemble d’entraînement de sorte que le rapport des exemples positifs aux exemples négatifs passe de 1: 1 à 2: 1, le rapport des coûts de classification erronée est alors de 2: 1. Cette équivalence entre la modification de la répartition par classe des données d'apprentissage et celle du rapport coût / erreur de classification est bien connue et a été officiellement décrite par Elkan [9].

Il existe des inconvénients connus liés à l'utilisation de l'échantillonnage pour mettre en œuvre un apprentissage sensible aux coûts. L' inconvénient du sous-échantillonnage est qu'il supprime des données potentiellement utiles . De notre point de vue, le principal inconvénient du suréchantillonnage réside dans le fait qu’en créant des copies exactes des exemples existants, il est probable qu’un surapprentissage sera possible . En fait, avec le suréchantillonnage, il est assez courant pour un apprenant de générer une règle de classification couvrant un seul exemple, répliqué. Le deuxième inconvénient du suréchantillonnage est qu’il augmente le nombre d’exemples de formation, augmentant ainsi le temps d’apprentissage .

2.3 Pourquoi utiliser l'échantillonnage?

Compte tenu des inconvénients de l’échantillonnage, il convient de se demander pourquoi on l’utiliserait plutôt qu’un algorithme d’apprentissage sensible au coût pour traiter des données avec une répartition de classe asymétrique et des coûts de classification erronée non uniformes. Il y a plusieurs raisons à cela. La raison la plus évidente est qu’il n’ya pas d’implémentation sensible au coût de tous les algorithmes d’apprentissage et qu’une approche basée sur l’encapsulation utilisant l’échantillonnage est donc la seule option. Bien que cela soit certainement moins vrai aujourd'hui que par le passé, de nombreux algorithmes d'apprentissage (par exemple, C4.5) ne gèrent toujours pas directement les coûts dans le processus d'apprentissage.

Une deuxième raison d'utiliser l'échantillonnage est que beaucoup de jeux de données fortement asymétriques sont énormes et que la taille de l'ensemble de formation doit être réduite pour que l'apprentissage soit réalisable. Dans ce cas, le sous-échantillonnage semble être une stratégie raisonnable et valide. Dans cet article, nous ne considérons pas la nécessité de réduire la taille de l'ensemble de formation. Nous vous ferons toutefois remarquer que, si certaines données de formation doivent être ignorées, il peut être utile de supprimer certains exemples de la majorité des classes afin de réduire la taille de l'ensemble de formation à la taille requise, puis de recourir également à une méthode de gestion des coûts. algorithme d'apprentissage sensible, de sorte que la quantité de données d'apprentissage rejetées soit minimisée.

Une dernière raison qui a peut-être contribué à l'utilisation de l'échantillonnage plutôt qu'à un algorithme d'apprentissage sensible au coût est que les coûts d'une mauvaise classification sont souvent inconnus. Cependant, ce n'est pas une raison valable pour utiliser l'échantillonnage sur un algorithme d'apprentissage sensible au coût, car le problème analogue se pose avec l'échantillonnage: quelle devrait être la distribution par classe des données d'apprentissage finales? Si ces informations sur les coûts ne sont pas connues, une mesure telle que l'aire sous la courbe ROC pourrait être utilisée pour mesurer les performances du classifieur et les deux approches pourraient alors déterminer de manière empirique le rapport coûts / classes approprié.

Ils ont également effectué une série d'expériences qui n'ont pas été concluantes:

Sur la base des résultats de tous les ensembles de données, il n'y a pas de gagnant définitif entre l'apprentissage sensible au coût, le suréchantillonnage et le sous-échantillonnage

Ils essaient ensuite de comprendre quels critères des jeux de données peuvent indiquer quelle technique convient le mieux.

Ils remarquent également que SMOTE peut apporter certaines améliorations:

Les gens ont apporté diverses améliorations pour améliorer l'efficacité de l'échantillonnage. Certaines de ces améliorations incluent l'introduction de nouveaux exemples «synthétiques» lors du suréchantillonnage [5 -> SMOTE], la suppression des exemples moins utiles de la classe majoritaire lorsque le sous-échantillonnage est utilisé [11] et l'utilisation de plusieurs sous-échantillons lors de la sous-échantillonnage, chaque exemple étant utilisé dans au moins un exemple. sous-échantillon [3]. Bien que ces techniques aient été comparées au suréchantillonnage et au sous-échantillonnage, elles ne l'ont généralement pas été à des algorithmes d'apprentissage sensibles au coût. Cela mériterait d'être étudié à l'avenir.


{1} Weiss, Gary M., Kate McCarthy et Bibi Zabar. "Apprentissage sensible aux coûts par rapport à l'échantillonnage: quel est le meilleur moyen de gérer des classes non équilibrées avec des coûts d'erreur inégaux?" DMIN 7 (2007): 35-41. https://scholar.google.com/scholar?cluster=10779872536070567255&hl=fr&as_sdt=0,22 ; https://pdfs.semanticscholar.org/9908/404807bf6b63e05e5345f02bcb23cc739ebd.pdf

Franck Dernoncourt
la source
1
Donc, pour résumer le lien: les résultats sur la méthode la mieux adaptée ne sont pas concluants, et il est plus facile d’utiliser le sous-échantillonnage / le suréchantillonnage. Droite?
LazyCat
1
@LazyCat droite.
Franck Dernoncourt le
Oui, la plateforme a des limites. Mais beaucoup d'entre eux sont également des fonctionnalités. Par exemple, je suppose que si une réponse aussi longue et détaillée pouvait répondre de manière adéquate à deux questions, celles-ci devaient alors faire double emploi. Et s’ils ne sont pas des doublons, il devrait être possible de varier les réponses de manière significative afin qu’elles ne soient pas simplement copiées-collées. Quelle action devrait être prise dans ce cas? (cc @gung)
whuber
@whuber L'autre question a déjà été fermée :-)
Franck Dernoncourt
1
Okay - c'est un argument convaincant!
whuber
6

Plusieurs réponses à cette requête ont déjà fourni plusieurs approches différentes, toutes valables. Cette suggestion provient d'un article et d'un logiciel associé de Gary King, éminent politologue de Harvard. Il a co-écrit un article intitulé Logistic Regression in Rare Events Data, qui propose des solutions assez convaincantes.

Voici le résumé:

Nous étudions des données d'événements rares, des variables dépendantes binaires avec des dizaines à des milliers de fois moins (événements, tels que des guerres, des vétos, des cas d'activisme politique ou des infections épidémiologiques) que des zéros ("non-événements"). Dans de nombreuses littératures, ces variables se sont révélées difficiles à expliquer et à prévoir, problème qui semble avoir au moins deux sources. Premièrement, les procédures statistiques courantes, telles que la régression logistique, peuvent fortement sous-estimer la probabilité d'événements rares. Nous recommandons des corrections qui surpassent les méthodes existantes et modifient les estimations des risques absolus et relatifs autant que certains effets estimés rapportés dans la littérature. Deuxièmement, les stratégies de collecte de données couramment utilisées sont extrêmement inefficaces pour les données d'événements rares. La crainte de collecter des données avec trop peu d'événements a conduit à des collectes de données avec un grand nombre d'observations mais relativement peu de variables explicatives mal mesurées, telles que les données de conflit international avec plus d'un quart de million de dyades, dont quelques-unes seulement. sont en guerre. En fin de compte, il existe des plans d'échantillonnage plus efficaces permettant de tirer des conclusions valables, tels que l'échantillonnage de tous les événements variables (par exemple, les guerres) et d'une infime fraction des non-événements (paix). Cela permet aux spécialistes d'économiser jusqu'à 99% de leurs coûts de collecte de données (non corrigés) ou de collecter des variables explicatives beaucoup plus significatives. Nous fournissons des méthodes qui relient ces deux résultats, permettant ainsi aux deux types de corrections de fonctionner simultanément, ainsi qu'un logiciel mettant en œuvre les méthodes développées. et des variables explicatives mal mesurées, telles que les données de conflit international avec plus d'un quart de million de dyades, dont quelques-unes seulement sont en guerre. En fin de compte, il existe des plans d'échantillonnage plus efficaces permettant de tirer des conclusions valables, tels que l'échantillonnage de tous les événements variables (par exemple, les guerres) et une infime fraction des non-événements (paix). Cela permet aux spécialistes d'économiser jusqu'à 99% de leurs coûts de collecte de données (non corrigés) ou de collecter des variables explicatives beaucoup plus significatives. Nous fournissons des méthodes qui relient ces deux résultats, permettant ainsi aux deux types de corrections de fonctionner simultanément, ainsi qu'un logiciel mettant en œuvre les méthodes développées. et des variables explicatives mal mesurées, telles que les données de conflit international avec plus d'un quart de million de dyades, dont quelques-unes seulement sont en guerre. En fin de compte, il existe des plans d'échantillonnage plus efficaces permettant de tirer des conclusions valables, tels que l'échantillonnage de tous les événements variables (par exemple, les guerres) et une infime fraction des non-événements (paix). Cela permet aux spécialistes d'économiser jusqu'à 99% de leurs coûts de collecte de données (non corrigés) ou de collecter des variables explicatives beaucoup plus significatives. Nous fournissons des méthodes qui relient ces deux résultats, permettant ainsi aux deux types de corrections de fonctionner simultanément, ainsi qu'un logiciel mettant en œuvre les méthodes développées. des plans d'échantillonnage plus efficaces existent pour faire des déductions valables, tels que l'échantillonnage de tous les événements variables (par exemple, les guerres) et d'une infime fraction des non-événements (paix). Cela permet aux spécialistes d'économiser jusqu'à 99% de leurs coûts de collecte de données (non corrigés) ou de collecter des variables explicatives beaucoup plus significatives. Nous fournissons des méthodes qui relient ces deux résultats, permettant ainsi aux deux types de corrections de fonctionner simultanément, ainsi qu'un logiciel mettant en œuvre les méthodes développées. des plans d'échantillonnage plus efficaces existent pour faire des déductions valables, tels que l'échantillonnage de tous les événements variables (par exemple, les guerres) et d'une infime fraction des non-événements (paix). Cela permet aux spécialistes d'économiser jusqu'à 99% de leurs coûts de collecte de données (non corrigés) ou de collecter des variables explicatives beaucoup plus significatives. Nous fournissons des méthodes qui relient ces deux résultats, permettant ainsi aux deux types de corrections de fonctionner simultanément, ainsi qu'un logiciel mettant en œuvre les méthodes développées.

Voici un lien vers le papier ... http://gking.harvard.edu/files/abs/0s-abs.shtml

Mike Hunter
la source
Merci, si vous lisez le journal, suggèrent-ils autre chose d'important que le sous-échantillonnage suggéré ci-dessus?
LazyCat
4
C'est un bon article, je l'ai lu plus d'une fois! (+1) Je pense cependant que vous devriez signaler que le document s'intéresse également à l'inférence. C'est pourquoi un GBM serait moins utile pour un politologue qu'un GLM. Par exemple, si des méthodologies arborescentes sont utilisées: " ... deux algorithmes de partitionnement récursifs peuvent obtenir la même précision de prédiction, mais représentent en même temps des relations de régression structurellement différentes, c'est-à-dire des modèles différents, et peuvent donc conduire à des conclusions différentes quant à l'influence. de certaines covariables sur la réponse. "(Hothorn et al. 2006)
usr11852 dit Reinstate Monic
2

Le développement de classificateurs pour les jeux de données avec des classes déséquilibrées est un problème courant en apprentissage automatique. Les méthodes basées sur la densité peuvent présenter des avantages considérables par rapport aux "classificateurs traditionnels" dans une telle situation.

p^(x|yC)C = { x : y i = 0 }CC={x:yi=0}

Une fois qu'une estimation de densité est formée, vous pouvez prédire la probabilité qu'un enregistrement de test non vu appartienne ou non à cette estimation de densité. Si la probabilité est suffisamment petite, inférieure à un seuil spécifié (généralement obtenue par une phase de validation), alors , sinon* y ( x * ) C y ( x * ) Cxy^(x)Cy^(x)C

Vous pouvez vous référer au papier suivant:

"Un estimateur plug-in calculable des ensembles de volume minimum pour la détection de nouveauté", C. Park, J. Huang et Y. Ding, Recherche opérationnelle, 58 (5), 2013.

Rodrigo
la source
2

C'est le genre de problème pour lequel la détection d'anomalies est une approche utile. C'est en gros ce que rodrigo a décrit dans sa réponse, dans lequel vous déterminez le profil statistique de votre classe d'entraînement et définissez un seuil de probabilité au-delà duquel il est déterminé que les mesures futures n'appartiendront pas à cette classe. Voici un didacticiel vidéo qui devrait vous aider à démarrer. Une fois que vous avez absorbé cela, je vous recommande de rechercher Estimation de la densité du noyau.

DrMcCleod
la source