Nous avions déjà plusieurs questions sur les données déséquilibrées lors de l'utilisation de la régression logistique , de la SVM , des arbres de décision , de la mise en sac et de plusieurs autres questions similaires, ce qui en fait un sujet très populaire! Malheureusement, chacune des questions semble être spécifique à un algorithme et je n'ai trouvé aucune directive générale pour traiter les données asymétriques.
Citant l' une des réponses de Marc Claesen , traitant de données non équilibrées
(...) dépend fortement de la méthode d'apprentissage. La plupart des approches générales ont un (ou plusieurs) moyen de gérer cela.
Mais quand devons-nous nous préoccuper des données déséquilibrées? Quels algorithmes sont le plus souvent affectés et lesquels sont capables de le gérer? Quels algorithmes auraient besoin de nous pour équilibrer les données? Je suis conscient que discuter de chacun des algorithmes serait impossible sur un site de questions-réponses comme celui-ci. Je cherche plutôt des directives générales sur les cas où cela pourrait poser problème.
Réponses:
Pas une réponse directe, mais il convient de noter que, dans la littérature statistique, certains préjugés contre des données non équilibrées ont des racines historiques.
De nombreux modèles classiques se simplifient nettement sous l'hypothèse de données équilibrées, en particulier pour les méthodes telles que l'ANOVA qui sont étroitement liées au plan expérimental - une motivation traditionnelle / originale pour développer des méthodes statistiques.
Mais l'arithmétique statistique / probabiliste devient assez moche, assez rapidement, avec des données déséquilibrées. Avant l’adoption généralisée des ordinateurs, les calculs manuels étaient si complexes qu’il était pratiquement impossible d’estimer des modèles sur des données non équilibrées.
Bien sûr, les ordinateurs ont fondamentalement éliminé ce problème. De même, nous pouvons estimer des modèles sur des jeux de données volumineux, résoudre des problèmes d'optimisation de grandes dimensions et extraire des échantillons de distributions de probabilités jointes analytiquement intraitables, qui étaient toutes fonctionnellement impossibles il y a cinquante ans.
C'est un vieux problème, et les universitaires ont mis beaucoup de temps à travailler sur le problème ... en attendant, de nombreux problèmes appliqués ont dépassé / empêché cette recherche, mais les vieilles habitudes ont la vie dure ...
Modifier pour ajouter:
Je me rends compte que je ne suis pas sorti et que je viens de le dire: l'utilisation de données non équilibrées ne pose pas de problème de bas niveau. D'après mon expérience, le conseil pour "éviter les données déséquilibrées" est soit une sagesse spécifique à un algorithme, soit héritée. Je conviens avec AdamO qu'en général, les données non équilibrées ne posent aucun problème conceptuel à un modèle bien spécifié.
la source
WLOG, vous pouvez vous concentrer sur le déséquilibre dans un facteur unique plutôt que sur un concept plus nuancé de "fragmentation des données" ou de petites cellules.
Dans les analyses statistiques qui ne sont pas axées sur l'apprentissage, nous constatons souvent qu'une puissance similaire ou meilleure est obtenue lorsque des scores de propension sont utilisés pour faire correspondre le groupe le plus petit au groupe le plus large. C'est en partie parce que l'appariement sert un objectif similaire à l'ajustement de confusion en termes d '"équilibrage" des déterminants de l'appartenance à un groupe, bloquant ainsi leurs effets de confusion. La justification du nombre de facteurs de confusion à ajuster éventuellement dans une analyse à plusieurs variables dépend de la taille de l'échantillon. Certaines règles empiriques disent une variable pour 10 à 20 observations. Dans des données déséquilibrées, vous croyez naïvement que vos données sont suffisamment grandes, mais avec un nombre restreint de personnes présentant la condition la plus rare: une inflation par variance diminue considérablement le pouvoir. En fait, vous êtes en train de trop vous ajuster.
Par conséquent, du moins dans la régression (mais je suppose que dans toutes les circonstances), le seul problème avec les données déséquilibrées est que vous avez effectivement un échantillon de petite taille . Si une méthode convient au nombre de personnes appartenant à la classe la plus rare, il ne devrait pas y avoir de problème si leur proportion de membres est déséquilibrée.
la source
Les données déséquilibrées ne sont un problème que selon votre application. Si, par exemple, vos données indiquent que A arrive 99,99% du temps et 0,01% du temps B se produit et que vous essayez de prédire un certain résultat, votre algorithme dira probablement toujours A. Ceci est bien sûr correct! Il est peu probable que votre méthode obtienne une précision de prédiction supérieure à 99,99%. Cependant, dans de nombreuses applications, nous ne nous intéressons pas uniquement à l'exactitude de la prédiction, mais également à la raison pour laquelle B se produit parfois. C’est là que les données déséquilibrées deviennent un problème. Parce qu'il est difficile de convaincre votre méthode qu'elle peut prédire mieux que 99,99% de réponses correctes. La méthode est correcte mais pas pour votre question. Résoudre des données non équilibrées revient donc à biaiser intentionnellement vos données pour obtenir des résultats intéressants au lieu de résultats précis.
En général, il y a trois cas:
vous êtes purement intéressé par une prédiction précise et vous pensez que vos données sont représentatives. Dans ce cas, vous n'avez pas à corriger du tout, Dorez-vous dans la gloire de vos prédictions précises à 99,99% :).
La prévision vous intéresse, mais vos données proviennent d'un échantillon correct, mais vous avez en quelque sorte perdu un certain nombre d'observations. Si vous avez perdu des observations de manière totalement aléatoire, vous vous en sortez bien. Si vous les avez perdues de manière biaisée mais que vous ne savez pas à quel point elles sont biaisées, vous aurez besoin de nouvelles données. Cependant, si ces observations ne sont perdues que sur la base d'une caractéristique. (Par exemple, vous avez trié les résultats dans A et B mais pas de toute autre manière mais perdu la moitié de B) Ypu peut amorcer vos données.
Vous n'êtes pas intéressé par une prédiction globale précise, mais seulement dans un cas rare. Dans ce cas, vous pouvez gonfler les données de ce cas en amorçant les données ou si vous avez suffisamment de données en lançant des données de chemin des autres cas. Notez que cela biaise vos données et vos résultats, et donc les chances et ce genre de résultats sont faux!
En général, cela dépend principalement de l'objectif recherché. Certains objectifs souffrent de données déséquilibrées, d'autres non. Toutes les méthodes de prévision générales en souffrent, car sinon elles donneraient des résultats terribles en général.
la source
Supposons que nous avons deux classes:
Supposons que nous recherchions des éléments de classe B, qui pourraient être des personnes touchées par une maladie rare ou un fraudeur.
Juste en devinant Un apprenant serait un score élevé sur leur perte-fonctions et les très peu d' éléments mal classés pourraient ne pas se déplacer, numériquement, l'aiguille (dans une botte de foin, dans ce cas). Cet exemple apporte à l'intuition l'un des "trucs" permettant d'atténuer le problème de déséquilibre de classe: ajuster la fonction de coût.
Je pense que les données déséquilibrées sont un problème lorsque les modèles montrent une sensibilité proche de zéro et une spécificité proche de un. Voir l'exemple dans cet article sous la section "Ignorer le problème" .
Les problèmes ont souvent une solution. Outre le truc susmentionné, il existe d'autres options . Cependant, ils ont un prix: une augmentation de la complexité des modèles et des calculs.
La question demande quels modèles sont plus susceptibles de s’adapter à une sensibilité proche de zéro et à une spécificité proche de un. Je pense que cela dépend de quelques dimensions:
la source
Si vous y réfléchissez: sur un ensemble de données parfaitement déséquilibré parfaitement séparable, presque tous les algorithmes fonctionneront sans erreur.
Il s’agit donc plutôt d’un problème de bruit dans les données et moins lié à un algorithme particulier. Et vous ne savez pas au préalable quel algorithme compense le mieux un type de bruit particulier.
En fin de compte, il vous suffit d'essayer différentes méthodes et de décider par validation croisée.
la source