pourquoi nous devons gérer le déséquilibre des données?

12

J'ai besoin de savoir pourquoi nous devons faire face au déséquilibre des données. Je sais comment y faire face et différentes méthodes pour résoudre le problème qui est par échantillonnage à la hausse ou à la baisse ou en utilisant Smote.

Par exemple, si j'ai une maladie rare, 1% sur 100, et disons que j'ai décidé d'avoir un ensemble de données équilibré pour mon ensemble de formation qui est: 50/50 échantillon Cela ne fera pas penser à la machine que 50% des patients auront maladie? même si le rapport est de 1 sur 100. Donc

  1. Pourquoi devons-nous faire face au déséquilibre des données?
  2. Quel est le ratio recommandé pour régler l'équilibre
Sara
la source
J'aime cette question. Comprendre pourquoi est très important.
DaL
Voir une question relative dans stats.stackexchange.com/questions/312780/…
DaL

Réponses:

8

Vous devez faire face à un ensemble de données déséquilibré lorsque la valeur de trouver la classe minoritaire est beaucoup plus élevée que celle de trouver la majorité.

Disons que 1% de la population a cette maladie rare. Supposons que vous affectiez le même coût à dire qu'un homme en bonne santé est malade ou à dire qu'un homme malade est en bonne santé. Fournissez un modèle qui dit que tout le monde est en bonne santé, a une précision de 99% et rentre tôt. Le problème avec un tel modèle est que même s'il a une grande précision, il ne sera probablement pas ce que vous recherchez. La plupart du temps, vous voulez trouver les personnes atteintes (donnant un poids élevé aux faux négatifs) beaucoup plus que vous n'avez peur d'envoyer une personne en bonne santé à un test inutile (faible poids aux faux positifs). Dans un problème de santé réel, le rapport entre le poids peut facilement être de 1 à 1 000.

Le déséquilibre dans la distribution ne permet pas à la plupart des algorithmes de trouver une solution appropriée.

Vous avez raison: équilibrer la distribution n'est pas la solution optimale. En effet, un algorithme entraîné sur une distribution équilibrée n'est pas adapté à la distribution naturelle sur laquelle il sera évalué. Ma méthode préférée est de l'adapter en arrière, comme vous pouvez le voir ici . Pour une discussion, voir ici .

Le simple fait de régler le ratio sur un autre problème ne fonctionnera pas car vous aurez le même problème.

Smote fonctionne d'une manière différente, ce qui n'a pas fonctionné aussi bien quand je l'ai essayé, mais cela pourrait convenir à votre problème.

DaL
la source
Donc, si je comprends bien, il vaut mieux équilibrer les données parce que la plupart des algorithmes fonctionnent bien sur les données équilibrées même si elles ne correspondent pas à la distribution naturelle?
sara
Pouvez-vous élaborer davantage sur cette phrase «lorsque votre coût d'erreur ne correspond pas à la distribution des échantillons». Je ne l'ai pas très bien compris
Sara
1
Répondre au premier commentaire: un ensemble de données déséquilibré conduira les algorithmes à obtenir de bons résultats en renvoyant la majorité. Ce sera un problème si vous vous intéressez davantage à la minorité. L'équilibrage est donc un moyen de forcer l'algorithme à donner plus de poids à la minorité. Cependant, une fois que vous avez équilibré, la distribution des trains et la distribution des tests sont différentes, vous devez donc adapter votre modèle à la distribution des tests (comme dans la méthode que j'ai proposée).
DaL
Répondre au deuxième commentaire: En effet, ce point n'était pas clair. J'ai édité la réponse. Est-ce clair maintenant?
DaL
oui, si je comprends bien la formation et la distribution des tests devraient être les mêmes, alors ce ne sera pas une solution, c'est qu'après avoir équilibré mon ratio de formation à 50 50, je pars et je règle également mon jeu de test à 50 50?
sara
3
  • Réponse courte:

vous devez gérer le déséquilibre de classe si / parce que cela améliore votre modèle (sur des données invisibles). "Mieux" est quelque chose que vous devez définir vous-même. Ce pourrait être la précision, ce pourrait être un coût, ce pourrait être le vrai taux positif, etc.

  • Longue réponse:

Il y a une nuance subtile qu'il est important de saisir lorsque l'on parle de déséquilibre de classe. À savoir, vos données sont-elles déséquilibrées parce que:

  1. la distribution des données est elle-même déséquilibrée

Dans certains cas, une classe se produit beaucoup plus qu'une autre. Et ça va. Dans ce cas, vous devez vérifier si certaines erreurs sont plus coûteuses que d'autres. C'est l'exemple typique de la détection de maladies mortelles chez les patients, de déterminer si quelqu'un est un terroriste, etc. Cela revient à la réponse courte. Si certaines erreurs sont plus coûteuses que d'autres, vous voudrez les "punir" en leur donnant un coût plus élevé. Par conséquent, un meilleur modèle aura un coût inférieur. Si toutes les erreurs sont aussi graves, il n'y a aucune raison réelle d'utiliser des modèles sensibles aux coûts.

Il est également important de noter que l'utilisation de modèles sensibles aux coûts n'est pas spécifique aux ensembles de données déséquilibrés. Vous pouvez également utiliser de tels modèles si vos données sont parfaitement équilibrées.

  1. il ne représente pas la vraie distribution des données

Parfois, vos données sont «déséquilibrées» car elles ne représentent pas la véritable distribution des données. Dans ce cas, vous devez être prudent, car vous avez "trop" d'exemples d'une classe et "trop ​​peu" de l'autre, et par conséquent, vous devez vous assurer que votre modèle ne sur / sous-habille pas sur une de ces classes.

C'est différent de l'utilisation des coûts, car il est possible qu'une erreur soit pire qu'une autre. Ce qui se passerait, c'est que vous seriez biaisé et ce ne serait pas bénéfique pour votre modèle si les données invisibles n'ont pas la même distribution que les données sur lesquelles vous vous êtes entraîné.

Disons que je vous donne des données d'entraînement et que votre objectif est de deviner si quelque chose est rouge ou bleu. Que vous confondiez le bleu avec le rouge ou le rouge avec le bleu ne fait pas beaucoup de différence. Vos données d'entraînement contiennent 90% d'instances rouges alors que dans la vraie vie, elles ne surviennent que 10% du temps. Vous devrez y faire face afin d'améliorer votre modèle.

Valentin Calomme
la source
Réponse très élaborée. Pouvez-vous expliquer davantage avec un exemple sur ce que vous entendez par «si votre modèle est meilleur parce qu'il a un faible coût, alors faites face au déséquilibre». Pourquoi devrais-je traiter le déséquilibre si le modèle a un faible coût?
sara
J'ai un peu modifié ma réponse, alors j'espère que c'est plus clair. Ce que je voulais dire était le suivant: "si votre modèle est considéré comme meilleur quand il a un faible coût et que le traitement du déséquilibre réduit le coût, alors faites-le".
Valentin Calomme