Est-ce que Support Vector Machine gère les jeux de données déséquilibrés?

14

SVM gère-t-il un ensemble de données déséquilibré? S'agit-il de paramètres (comme C, ou coût de classification erronée) gérant l'ensemble de données déséquilibré?

RockTheStar
la source
1
Qu'est-ce qui rend un ensemble de données «déséquilibré»?
whuber
1
@quand un ensemble de données de classification avec une prévalence de classe très variable est souvent appelé déséquilibré.
Marc Claesen
1
@Marc C'est peut-être vrai en général, mais c'est un concept vague. Dans quelle mesure "varie largement"? Pourquoi cela aurait-il même de l'importance, sauf dans certaines circonstances particulières? Je pense qu'il est important pour nous d'apprendre ce que l' auteur de cette question entend par "déséquilibré" plutôt que d'accepter la supposition intelligente de quiconque concernant le sens voulu.
whuber
Les ensembles de données @whuber déséquilibrés sont un concept courant dans l'apprentissage automatique. En termes d'applications à cause, par exemple, de la détection de spam, etc. Peut-être à cause de la prépondérance d'algorithmes ciblant l'erreur de classification erronée au lieu de la probabilité. Cela rend à son tour la pondération de l'erreur problématique.
seanv507
2
Merci, @seanv, pour la clarification. Le problème terminologique semble vraiment être que «poignées» ne fait pas référence à «peut être appliqué», mais implique plutôt un cadre dans lequel (1) il existe une classe qui est dans une telle minorité, ses performances de prédiction pourraient être fortement affectées par la présence des autres classes, tandis que (2) une prédiction précise pour la classe minoritaire est intéressante. En ce sens, "l'ensemble de données déséquilibré" est une description assez incomplète du problème, mais comme le terme semble avoir acquis une certaine monnaie, il semble inutile de se plaindre.
whuber

Réponses:

18

Pour les ensembles de données déséquilibrés, nous modifions généralement la pénalité de mauvaise classification par classe. Ceci est appelé SVM pondéré par classe, ce qui minimise les éléments suivants:

minw,b,ξi=1Nj=1Nαiαjyiyjκ(xi,xj)+CposiPξi+CnegiNξi,s.t.yi(j=1Nαjyjκ(xi,xj)+b)1ξi,i=1Nξi0,i=1N

PNC

Cette approche a été introduite assez tôt, elle est mentionnée par exemple dans un article de 1997:

Edgar Osuna, Robert Freund et Federico Girosi. Prise en charge des machines vectorielles: formation et applications. Rapport technique AIM-1602, 1997. ( pdf )

Cpos=2CnegC=Cneg

Marc Claesen
la source
Cool merci! En plus de cela, la régression logistique, navie bayes, l'arbre de décision gèrent-ils un tel problème de déséquilibre?
RockTheStar
la régression logistique le fait certainement, vous pondérez simplement la probabilité de modèles positifs et de modèles négatifs différemment.
Dikran Marsupial
La régression logistique et SVM fournissent des moyens intrinsèques. Je ne connais pas par cœur toutes ces autres méthodes, mais le suréchantillonnage de la classe minoritaire fonctionne pour à peu près toutes les méthodes (bien que ce ne soit pas exactement mathématiquement élégant).
Marc Claesen
1
Cool, merci @Dikran. Marc: oui, le simple suréchantillonnage fonctionne en général. Cependant, cela dépend de la situation. Ce qui se passe, c'est que vous ajoutez des «pondérations» aux données de la minorité lorsque vous suréchantillonnez la minorité (en répliquant encore et encore les points de la minorité aux mêmes endroits). Cela contribue essentiellement à améliorer la "prise en compte" de l'exemple minoritaire. Cependant, la limite de décision de la classification deviendra alors assez tendue (pas assez générale), c'est-à-dire qu'un sur-ajustement peut se produire). Par conséquent, nous devrons peut-être envisager certaines techniques d'échantillonnage probabilistes, comme SMOTE.
RockTheStar
10

Les SVM sont capables de traiter des ensembles de données avec des fréquences de classe déséquilibrées. De nombreuses implémentations vous permettent d'avoir une valeur différente pour la pénalité de jeu (C) pour les classes positives et négatives (ce qui équivaut asymptotiquement à changer les fréquences de classe). Je recommanderais de définir les valeurs de ces paramètres afin de maximiser les performances de généralisation sur un ensemble de test où les fréquences de classe sont celles que vous attendez en utilisation opérationnelle.

J'étais l'une des nombreuses personnes qui ont écrit des articles à ce sujet, voici le mien , je vais voir si je peux trouver quelque chose de plus récent / meilleur. Essayez Veropoulos, Campbell et Cristianini (1999).

Dikran Marsupial
la source
Dikran pourquoi est-il uniquement asymptotiquement équivalent ... c'est sûrement exactement équivalent à pondérer différemment les différentes erreurs de classe?
seanv507
C'est exactement équivalent à pondérer les erreurs de classe, mais ce n'est pas la même chose que de rééchantillonner les données (pour commencer, les poids sont variables en continu, mais les données sont discrètes). Il s'agit d'un résultat d'attente asymptotique (qui ne semble pas particulièrement utile dans la plupart des cas).
Dikran Marsupial