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
- Pourquoi devons-nous faire face au déséquilibre des données?
- Quel est le ratio recommandé pour régler l'équilibre
Réponses:
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.
la source
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.
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:
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.
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.
la source