Quel problème le suréchantillonnage, le sous-échantillonnage et SMOTE résolvent-ils?

25

Dans une question récente et bien reçue, Tim demande quand les données non équilibrées sont-elles vraiment un problème dans le Machine Learning ? La prémisse de la question est qu'il y a beaucoup de littérature d'apprentissage automatique discutant de l'équilibre des classes et du problème des classes déséquilibrées . L'idée est que les ensembles de données avec un déséquilibre entre la classe positive et négative causent des problèmes pour certains algorithmes de classification d'apprentissage automatique (j'inclus ici des modèles probabilistes), et des méthodes doivent être recherchées pour "équilibrer" l'ensemble de données, en restaurant le parfait 50/50 répartie entre les classes positives et négatives.

Le sens général des réponses votées est que "ce n'est pas le cas, du moins si vous êtes réfléchi dans votre modélisation". M. Henry L., dans un commentaire positif à une réponse acceptée, déclare

[...] il n'y a pas de problème de bas niveau avec l'utilisation de données asymétriques. D'après mon expérience, le conseil «d'éviter les données déséquilibrées» est soit spécifique à l'algorithme, soit hérité de la sagesse. Je suis d'accord avec AdamO qu'en général, les données déséquilibrées ne posent aucun problème conceptuel à un modèle bien spécifié.

AdamO soutient que le "problème" avec l'équilibre des classes est vraiment un problème de rareté des classes

Par conséquent, au moins en régression (mais je soupçonne en toutes circonstances), le seul problème avec les données déséquilibrées est que vous avez effectivement un petit échantillon. Si une méthode convient au nombre de personnes dans la classe la plus rare, il ne devrait pas y avoir de problème si leur proportion de membres est déséquilibrée.

Si tel est le vrai problème, il laisse une question ouverte: quel est le but de toutes les méthodes de rééchantillonnage destinées à équilibrer l'ensemble de données: suréchantillonnage, sous-échantillonnage, SMOTE, etc.? De toute évidence, ils ne résolvent pas le problème d'avoir implicitement un petit échantillon, vous ne pouvez pas créer des informations à partir de rien!

Matthew Drury
la source
C'est exactement ce que j'aurais changé en ... merci. Cela ne couvre pas toute la portée de votre question, mais un titre n'est pas obligé - cela permet clairement de savoir quel genre de chose vous demandez.
Glen_b -Reinstate Monica
Il existe certainement des situations où les méthodes de bootstrap et de sous-échantillonnage sont utiles et parfois meilleures que d'autres méthodes non paramétriques. Les livres sur le bootstrap et le sous-échantillonnage couvrent cela. Il y a des discussions sur ce site qui en discutent, y compris la supériorité du bootstrap sur le laisser-un-out dans l'analyse discriminante même dans des échantillons relativement petits. Il y a certainement des situations où le bootstrap échoue et celles-ci sont mentionnées dans mon livre ainsi que dans d'autres.
Michael R. Chernick
@MichaelChernick Je ne parle pas du bootstrap, c'est ce que Glen commentait. Je parle d'approches "d'équilibrage des classes" comme sur et sous-échantillonnage afin que la classe positive à négative soit représentée de manière égale dans un ensemble de données.
Matthew Drury
Incluez-vous le sous-échantillonnage? Faites-vous uniquement référence à une taille d'échantillon inégale? Dans quelle mesure faites-vous une déclaration générale?
Michael R. Chernick
@MichaelChernick J'ai ajouté quelques remarques de clarification dans les premier et dernier paragraphes, j'espère que cela aide.
Matthew Drury

Réponses:

0

Certaines techniques d'échantillonnage consistent à ajuster le biais (si le taux de population est connu et différent), mais je suis d'accord avec l'idée que la classe déséquilibrée n'est pas le problème en soi. Une des principales raisons réside dans les performances de traitement. Si notre classe cible, par exemple, est un cas extrêmement rare à 1: 100000, notre ensemble de données de modélisation serait massif et le calcul serait difficile. L'échantillonnage, quelle que soit la stratégie, jette toujours des données afin de réduire la taille totale de l'ensemble de données. Je suppose que la différence entre toutes les différentes stratégies d'échantillonnage est simplement l'intelligence autour de laquelle nous jetons les données sans sacrifier une perte de possibilités prédictives.

Josh
la source
4
Tout cela est vrai, mais bon nombre des méthodes dont je parle créent de plus grands ensembles de données. Le suréchantillonnage crée plus d'instances de la classe positive en copiant les points de données existants, et SMOTE crée des points de données "synthétiques" de la classe rare. Ceux-ci ne contribueraient certainement pas à l'efficacité informatique.
Matthew Drury
0

Le problème que ces méthodes tentent de résoudre est d'augmenter l'impact de la classe minoritaire sur la fonction de coût. En effet, les algos essaient de bien adapter l'ensemble de données, puis de s'adapter à la majorité. Une autre approche consisterait à utiliser des pondérations de classe, et cet aporoach donne dans la plupart des cas de meilleurs résultats, car il n'y a pas de perte d'information par sous-échantillonnage ou de perte de performance et d'introduction de bruit par suréchantillonnage.

Milan Vukicevic
la source
2
je ne comprends pas votre réponse.
Michael R. Chernick
Je voulais dire que les performances du classificateur sont évaluées sur l'ensemble des données (erreur moyenne sur les exemples positifs et négatifs), où l'erreur pour chaque exemple est également pondérée. Ainsi, l'algorithme (par exemple la régression logistique) adapte sa fonction d'hypothèse à des exemples qui maximiseront la réduction des erreurs. Dans ce cas, à la classe majoritaire, où la minorité (classe négative) est pratiquement ignorée car elle n'a pas une grande influence sur l'erreur sur l'ensemble de données. C'est pourquoi le suréchantillonnage, le sous-échantillonnage ou la pondération par classe permettent une meilleure adoption de l'algorithme à la classe minoritaire.
Milan Vukicevic
0

Je vais vous donner un exemple plus extrême. Considérez le cas où vous avez un ensemble de données avec 99 points de données étiquetés comme positifs et un seul étiqueté comme négatifs. Pendant l'entraînement, votre modèle se rendra compte que s'il classe tout comme positif, il finira par s'en tirer. Une façon de résoudre ce problème est de suréchantillonner la classe sous-représentée et une autre est de sous-échantillonner la classe surreprésentée. Par exemple, dans un ensemble de données de 70 étiquettes positives et 30 étiquettes négatives, je pourrais échantillonner les étiquettes négatives avec remplacement et les étiquettes positives sans remplacement, ce qui entraînera mon modèle à rencontrer plus d'étiquettes négatives pendant la formation. De cette façon, si mon modèle essaie de tout classer comme positif, il encourra une perte plus importante qu'il ne l'aurait fait autrement.

Une autre approche qui ne concerne pas l'échantillonnage est d'ajuster la fonction de coût pour donner des poids plus élevés aux points de données avec l'étiquette minoritaire. Par exemple, si vous utilisez la perte NLL dans un ensemble de données où les 1 sont surreprésentés par rapport aux 0 parmi les étiquettes, vous pouvez ajuster votre fonction de perte pour qu'elle soit:

L(Xje~,yje)=-α(yje)ln(Xje~)-β(1-yje)ln(1-Xje~)

β>α. L'ampleur de la différence β-α dépend de l'étendue de la surreprésentation / sous-représentation.

Ilkin Bayramli
la source
0

Je ne suis pas d'accord avec l'hypothèse selon laquelle les données déséquilibrées ne sont pas un problème dans l'apprentissage automatique. Peut-être moins en régression, mais c'est certainement en classification.

Les données déséquilibrées sont pertinentes dans les applications d'apprentissage automatique en raison de la baisse des performances des algorithmes (la recherche à laquelle je pense concerne spécifiquement les classificateurs) dans le cadre du déséquilibre de classe.

Prenez un problème de classification binaire simple avec un ratio de 25: 1 d'exemples de formation de classe A 'contre' classe B '. La recherche a montré que la précision relative à la classification de la classe B est un succès simplement en raison de la diminution du ratio des données d'entraînement. Il est logique, car moins vous avez d'exemples de formation, plus votre classificateur sera pauvre sur ces données. Comme l'a déclaré l'un des commentateurs, vous ne pouvez pas faire quelque chose à partir de rien. D'après les articles que j'ai vus, dans les problèmes de classification multiclasse, il semble que vous devez atteindre un rapport de 10: 1 pour commencer à avoir un impact significatif sur la précision de la classe minoritaire. Peut-être que les gens qui lisent une littérature différente de celle que j'ai vue ont des opinions différentes.

Les solutions proposées sont donc les suivantes: suréchantillonnage de la classe minoritaire, sous-échantillonnage de la classe majoritaire ou utilisation de SMOTE sur la classe minoritaire. Oui, vous ne pouvez pas vraiment créer de données à partir de nulle part (le type SMOTE le fait, mais pas exactement) à moins que vous n'entrez dans la création de données synthétiques pour la classe minoritaire (pas de méthode simple). D'autres techniques comme MixUp et similaires entrent potentiellement dans ce concept, mais je pense qu'elles sont plus des régularisateurs que des solutions de déséquilibre de classe. Dans les articles que j'ai lus, Suréchantillonnage> SMOTE> Sous-échantillonnage.

Quelle que soit votre technique, vous modifiez la relation entre les classes majoritaires et minoritaires qui peut affecter l'incidence. En d'autres termes, si vous créez un classificateur pour détecter une maladie cérébrale super rare X qui a une incidence de 1 sur 100 000 et que votre classificateur est à 1: 1, vous pourriez être plus sensible et moins spécifique avec un plus grand nombre de faux positifs . S'il est important que vous détectiez ces cas et l'arbitre plus tard, vous êtes d'accord. Sinon, vous avez perdu beaucoup de temps et d'argent d'autres personnes. Ce problème devra éventuellement être résolu.

Donc pour répondre à la question:

tl / dr: Des opérations d'équilibrage de classe comme le sur / sous-échantillonnage et SMOTE (et les données synthétiques) existent pour améliorer les performances de l'algorithme d'apprentissage automatique (classificateur) en résolvant les performances inhérentes atteintes dans un algorithme causées par le déséquilibre lui-même .

drsxr
la source