J'ai beaucoup réfléchi au «problème de déséquilibre de classe» dans l'apprentissage machine / statistique ces derniers temps, et j'approfondis de plus en plus le sentiment que je ne comprends tout simplement pas ce qui se passe.
Permettez-moi d'abord de définir (ou d'essayer de) définir mes termes:
Le problème de déséquilibre des classes dans l'apprentissage machine / statistique est l'observation que certains algorithmes de classification binaire (*) ne fonctionnent pas bien lorsque la proportion de 0 classes à 1 classe est très biaisée.
Ainsi, dans ce qui précède, par exemple, s'il y avait cent classes pour chaque classe unique , je dirais que le déséquilibre de classe est de à , ou .
La plupart des déclarations du problème que j'ai vu manquent de ce que je considérerais comme une qualification suffisante (quels modèles ont du mal, à quel point le déséquilibre est un problème), et c'est une source de ma confusion.
Une étude des textes standard en apprentissage machine / statistique s'avère peu:
- Les éléments du penchement statistique et de l' introduction à l'apprentissage statistique ne contiennent pas de «déséquilibre de classe» dans l'indice.
L'apprentissage automatique pour Predictive Data Analytics ne contient pas non plus de «déséquilibre de classe» dans l'index.
Murphy Machine Learning: une perspective probabilistes ne contient « déséquilibre de classe * dans l'index La référence est à une section sur SVM, où je trouve le commentaire suivant alléchant.:
Il convient de rappeler que toutes ces difficultés, et la pléthore d'heuristiques qui ont été proposées pour les résoudre, surviennent fondamentalement parce que les SVM ne modélisent pas l'incertitude en utilisant des probabilités, de sorte que leurs scores de sortie ne sont pas comparables entre les classes.
Ce commentaire concorde avec mon intuition et mon expérience: dans mon travail précédent, nous ajustions régulièrement les régressions logistiques et les modèles d'arbres boostés par le gradient (pour minimiser la vraisemblance logarithmique binomiale) aux données non équilibrées (de l'ordre d'un déséquilibre de classe de ), sans problèmes évidents de performances.
J'ai lu (quelque part) que les modèles d'arbre de classification (arbres eux-mêmes et forêt aléatoire) souffrent également du problème de déséquilibre de classe. Cela brouille un peu les eaux, les arbres renvoient, dans un certain sens, des probabilités: le record de vote pour la classe cible dans chaque nœud terminal de l'arbre.
Donc, pour conclure, ce que je recherche vraiment, c'est une compréhension conceptuelle des forces qui conduisent au problème de déséquilibre de classe (s'il existe).
- Est-ce quelque chose que nous nous faisons avec des algorithmes mal choisis et des seuils de classification par défaut paresseux?
- Cela disparaît-il si nous ajustons toujours des modèles de probabilité qui optimisent les critères de notation appropriés? Autrement dit, la cause est-elle simplement un mauvais choix de la fonction de perte, c'est-à-dire l'évaluation du pouvoir prédictif d'un modèle sur la base de règles de classification strictes et d'une précision globale?
- Dans l'affirmative, les modèles qui n'optimisent pas les règles de notation appropriées sont-ils alors inutiles (ou du moins moins utiles)?
(*) Par classification, j'entends tout modèle statistique adapté aux données de réponse binaire. Je ne suppose pas que mon objectif est une affectation difficile à une classe ou à l'autre, bien qu'il puisse l'être.
la source
poor choice of loss function
dans ma liste. Alors, pensez-vous que cela est vrai même pour les règles de notation appropriées en tant que fonctions de perte?Réponses:
Une entrée de l' Encyclopedia of Machine Learning ( https://cling.csd.uwo.ca/papers/cost_sensitive.pdf ) explique utilement que ce qu'on appelle "le problème de déséquilibre de classe" est mieux compris comme trois problèmes distincts:
Les auteurs expliquent:
Ainsi, comme le suggère Murphy, il n'y a rien de fondamentalement problématique à utiliser des classes déséquilibrées, à condition d'éviter ces trois erreurs. Les modèles qui produisent des probabilités postérieures permettent d'éviter plus facilement l'erreur (1) que les modèles discriminants comme SVM car ils vous permettent de séparer l'inférence de la prise de décision. (Voir la section 1.5.4 de Bishop's Inférence et décision pour plus de détails sur ce dernier point.)
J'espère que ça t'as aidé.
la source
Tout ce qui implique une optimisation pour minimiser une fonction de perte donnera, s'il est suffisamment convexe, une solution qui est un minimum global de cette fonction de perte. Je dis «suffisamment convexe» car les réseaux profonds ne sont pas dans l'ensemble convexes, mais donnent des minimums raisonnables dans la pratique, avec des choix prudents de taux d'apprentissage, etc.
Par conséquent, le comportement de ces modèles est défini par tout ce que nous mettons dans la fonction de perte.
Maintenant, disons que nous avons une fonction de perte qui est:
Dix fois plus faible que la perte lors de la définition du seuil de manière à attribuer un rappel et une précision égaux à chaque classe.
Alternativement, nous pouvons modifier l'ensemble de données en clonant chaque exemple B 99 fois, ce qui entraînera également la fonction de perte de ne plus avoir un minimum à une position différente de notre seuil idéal précédent.
la source
FP
,TP
etc. est probablement la meilleure façon d'avoir une fonction d'utilité raisonnable; en l'absence de connaissances pertinentes dans le domaine, cela peut être poilu. J'utilise presque toujours comme premier choix Cohen'sNotez que les classificateurs à une classe n'ont pas de problème de déséquilibre car ils regardent chaque classe indépendamment de toutes les autres classes et ils peuvent faire face aux "non-classes" en ne les modélisant tout simplement pas. (Ils peuvent avoir un problème avec une taille d'échantillon trop petite, bien sûr).
De nombreux problèmes qui seraient mieux modélisés par des classificateurs à une seule classe conduisent à des modèles mal définis lorsque des approches discriminatoires sont utilisées, dont les «problèmes de déséquilibre de classe» sont un symptôme.
À titre d'exemple, considérons certains produits qui peuvent être bons à vendre ou non. Une telle situation se caractérise généralement par
Ainsi, la classe «bon» est bien définie tandis que la classe «non bon» est mal définie. Si une telle situation est modélisée par un classifieur discriminant, nous avons un "problème de déséquilibre" double: non seulement la classe "pas bonne" a un petit échantillon, mais elle a également une densité d'échantillons encore plus faible (moins d'échantillons répartis sur un une plus grande partie de l'espace des fonctionnalités).
Ce type de «problème de déséquilibre de classe» disparaîtra lorsque la tâche sera modélisée comme une reconnaissance d'une classe de la «bonne» classe bien définie.
la source