SVM-Vertrauen nach Entfernung von der Hyperlinie

9

Für einen probabilistischen Mehrklassenklassifikator können wir Wahrscheinlichkeiten der Zugehörigkeit eines neuen Punktes zu jeder Klasse y_i erhalten ; Im Fall von 3 Klassen nehmen wir an, dass wir P (y_a | x)> P (y_b | x)> P (y_c | x) erhalten , daher ist die wahrscheinlichste Klasse von x y_a . Nehmen wir nun an, wir haben einen SVM mit mehreren Klassen, in dem wir für jede Klasse eine Punktzahl von x erhalten können (entsprechend den Abständen von den Hyperlinien). Im Fall von 3 Klassen nehmen wir an, dass wir Score (y_a | x), Score (y_b | x), Score (y_c | x) erhalten . Wie ist in diesem Fall die erste, zweite und drittwahrscheinlichste Klasse von x (ohne diese zu konvertieren? Scores zu Wahrscheinlichkeiten)? Normalerweise bekomme ich positive und negative Werte wie zum BeispielxyiP(ya|x)>P(yb|x)>P(yc|x)yaxScore(ya|x),Score(yb|x),Score(yc|x)xScore1=8622,Score2=5233,Score3=665

shn
quelle

Antworten:

11

Es ist tatsächlich möglich, Wahrscheinlichkeiten aus einer Support Vector Machine herauszuholen, die möglicherweise nützlicher und interpretierbarer sind als ein beliebiger "Score" -Wert. Hierfür gibt es einige Ansätze: Ein vernünftiger Ausgangspunkt ist Platt (1999) .

Die meisten SVM-Pakete / -Bibliotheken implementieren so etwas (z. B. bewirkt die Option -b 1, dass LibSVM Wahrscheinlichkeiten erzeugt). Wenn Sie Ihre eigenen Rollen spielen möchten, sollten Sie sich bewusst sein, dass es einige potenzielle numerische Probleme gibt, die in dieser Notiz von Lin, Lin und Weng (2007) zusammengefasst sind . Sie bieten auch einen Pseudocode, der ebenfalls hilfreich sein kann.

Bearbeiten als Antwort auf Ihren Kommentar : Es ist mir etwas unklar, warum Sie eine Punktzahl einer Wahrscheinlichkeit vorziehen, zumal Sie die Wahrscheinlichkeit mit minimalem zusätzlichen Aufwand erhalten können. Trotzdem scheinen die meisten Wahrscheinlichkeitsberechnungen aus der Entfernung zwischen dem Punkt und der Hyperebene abgeleitet zu sein. Wenn Sie sich Abschnitt 2 des Platt-Papiers ansehen, geht er die Motivation durch und sagt:

Die klassenbedingten Dichten zwischen den Rändern sind offensichtlich exponentiell. Die Bayes-Regel für zwei Exponentiale schlägt vor, eine parametrische Form eines Sigmoid zu verwenden: Dieses Sigmoidmodell entspricht der Annahme, dass die Ausgabe erfolgt der SVM ist proportional zur Log-Wahrscheinlichkeit eines positiven Trainingsbeispiels. [MK: wurde an anderer Stelle als SVM-Rohausgabe definiert].

P(y=1|f)=11+exp(Af+B)
f

Der Rest des Methodenabschnitts beschreibt, wie die und Parameter dieses Sigmoid angepasst werden. In der Einleitung (Abschnitt 1.0 und 1.1) geht Platt auf einige andere Ansätze von Vapnik, Wahba und Hasti & Tibshirani ein. Diese Methoden verwenden auch so etwas wie den Abstand zur Hyperebene, der auf verschiedene Weise manipuliert wird. Dies alles scheint darauf hinzudeuten, dass der Abstand zur Hyperebene einige nützliche Informationen enthält. Ich denke, Sie könnten den Rohabstand als (nichtlineares) Maß für das Vertrauen verwenden.AB

Matt Krause
quelle
1
Nun, ich weiß, dass es Methoden gibt, um die Bewertungen (Abstände von der Grenze) in Wahrscheinlichkeiten umzuwandeln, und dass sie möglicherweise besser interpretierbar sind, wie in der Frage klar angegeben ist: Ich möchte diese Bewertungen verwenden, "ohne diese Bewertungen in Wahrscheinlichkeiten umzuwandeln." ". Meine Frage lautet also: Ist es sinnvoll, die absoluten Werte aller dieser Bewertungen zu nehmen und zu sagen, dass der absolute Wert einer Bewertung umso höher istdas wahrscheinlichste ist von Klasse ? Oder sollte ich die Ergebnisse ohne die absoluten Werte vergleichen? oder ... ? |si|xi
Shn
0

Wenn der Trainingsdatensatz einigermaßen ausgewogen ist und standardisierte Merkmale aufweist, nehme ich die SVM-Werte als Maß für das Vertrauen in die Zugehörigkeit zu den jeweiligen Klassen. Die sogenannten Kalibrierungsmethoden, die die Scores in wahrscheinlichkeitsähnliche Größen umwandeln, wie z. B. die Platt-Skalierung, verwenden normalerweise monotone Funktionen (wie die logistische Funktion), um die Scores auf Wahrscheinlichkeiten abzubilden. Wenn Sie also nur die Konfidenzniveaus eines gelernten SVM-Modells in einem bestimmten Testdatenpunkt vergleichen möchten, der zu möglichen Klassen gehört, können Sie nur die Bewertungswerte (nicht ihre absoluten Werte) vergleichen, vorausgesetzt, der Trainingsdatensatz, aus dem das Modell gelernt wird ist ziemlich ausgeglichen und hat keine ungewöhnliche Eigenart.

Reza
quelle
Ich verstehe diese Antwort nicht.
Michael R. Chernick
Ich habe es bearbeitet, um meinen Standpunkt klarer zu machen.
Reza