Interpretation der Entfernung von der Hyperebene in SVM

14

Ich habe einige Zweifel daran, SVMs intuitiv zu verstehen. Angenommen, wir haben ein SVM-Modell für die Klassifizierung mit einem Standardwerkzeug wie SVMLight oder LibSVM trainiert.

  1. Wenn wir dieses Modell zur Vorhersage von Testdaten verwenden, generiert das Modell eine Datei mit "Alpha" -Werten für jeden Testpunkt. Wenn der Alpha-Wert positiv ist, gehört der Testpunkt zur Klasse 1, ansonsten zur Klasse 2. Können wir nun sagen, dass ein Testpunkt mit einem höheren Alpha-Wert zur entsprechenden Klasse mit einer höheren Wahrscheinlichkeit gehört?

  2. Ähnlich wie bei der ersten Frage, wenn wir eine SVM trainiert haben. Die SVs liegen sehr nahe an der Hyperebene. Bedeutet das also, dass SVs mit hoher Wahrscheinlichkeit zu dieser Klasse gehören? Können wir die Wahrscheinlichkeit, dass ein Punkt zu einer Klasse gehört, mit seiner Entfernung von der "Hyperebene" in Beziehung setzen? Stellt der Wert "alpha" die Entfernung zur "Hyperebene" dar?

Danke für deinen Beitrag.

Amit
quelle
Ich denke, die Antwort ist "nein", aber ich bin nicht genug in SVMs, um Ihnen eine vollständige Antwort zu geben. Meine gute Antwort lautet: Wenn Sie sich auf der Ostseite der Berliner Mauer befinden, sind Sie auf der falschen Seite, egal wie weit Sie davon entfernt sind.
Arthur
scikits.learn hat predict_proba für SVC und linear_model.SGDClassifier, ich glaube nur für binäre Klassifikatoren; Ich habe es aber nicht benutzt.
Denis

Antworten:

18

Lassen Sie mich zunächst Ihre Frage allgemein beantworten. Die SVM ist kein probabilistisches Modell. Ein Grund ist, dass es keiner normalisierbaren Wahrscheinlichkeit entspricht. Zum Beispiel in regularisierten Kleinste - Quadrate haben Sie die Verlustfunktion und dem Regularisator w 2 2 . Der Gewichtsvektor wird durch Minimieren der Summe der beiden erhalten. Dies ist jedoch äquivalent zu einer Maximierung des log-posterioren Wertes von w, wenn die Daten p ( w | ( yiyiw,xib22w22w , die Sie sein Produkt sehen können eine Gaußsche Wahrscheinlichkeit und ein Gaußscher Prior auf w ( Zp(w|(y1,x1),...,(ym,xm))1/Zexp(w22)iexp(yiw,xib22)wZstellt sicher, dass es sich normalisiert). Sie erreichen die Gaußsche Wahrscheinlichkeit der Verlustfunktion, indem Sie ihr Vorzeichen umdrehen und sie potenzieren. Wenn Sie dies jedoch mit der Verlustfunktion der SVM tun, ist die Log-Wahrscheinlichkeit kein normalisierbares Wahrscheinlichkeitsmodell.

Es gibt Versuche, SVM in einen zu verwandeln. Der bemerkenswerteste, der - wie ich finde - auch in libsvm implementiert ist, ist:

John Platt: Probabilistische Ausgaben für Support Vector Machines und Vergleich mit Regularized Likelihood Methods (NIPS 1999): http://www.cs.colorado.edu/~mozer/Teaching/syllabi/6622/papers/Platt1999.pdf

Um Ihre Frage genauer zu beantworten: Die Idee in SVMs ist in der Tat, dass je weiter ein Testvektor von der Hyperebene entfernt ist, desto mehr gehört er zu einer bestimmten Klasse (außer natürlich, wenn er sich auf der falschen Seite befindet). In diesem Sinne gehören Unterstützungsvektoren nicht mit hoher Wahrscheinlichkeit zu der Klasse, da sie sich entweder am nächsten oder auf der falschen Seite der Hyperebene befinden. Der Wert, den Sie von libsvm erhalten, hat nichts mit dem α in der Entscheidungsfunktion zu tun . Es ist vielmehr die Ausgabe der Entscheidungsfunktion i S V α i k ( x , x i ) + y ). Da y =αα (und sollte daher ordnungsgemäß aufgerufen werdeniSVαik(x,xi)+byy=iSVαik(x,xi)+b=w,ϕ(x)H+bwywwH=i,jSVαiαjk(xi,xj)

Fabee
quelle
Vielen Dank für Ihre Erklärung ... wird das Papier lesen
Amit