Ich verwende ksvm
aus dem Kernlab-Paket in R, um Wahrscheinlichkeiten vorherzusagen, indem ich die Option type="probabilities"
in predict.ksvm
verwende. Ich finde jedoch, dass die Verwendung von predict(model,observation,type="r")
manchmal nicht die Klasse mit der höchsten Wahrscheinlichkeit liefert, die durch predict(model,observation,type="p")
gegeben ist.
Beispiel:
%Vor%Ist das richtiges Verhalten oder ein Fehler? Wenn es richtiges Verhalten ist, wie kann ich die wahrscheinlichste Klasse aus den Wahrscheinlichkeiten schätzen?
Versuch eines reproduzierbaren Beispiels:
%Vor%Ausgabe der Ergebnisse:
%Vor%Wenn Sie sich die Entscheidungsmatrix und die Stimmen ansehen, scheinen sie den Antworten besser zu entsprechen:
%Vor% Die kernlab
Hilfeseiten ( ?predict.ksvm
) verlinken auf Papier Wahrscheinlichkeitsschätzungen für Mehrklassenklassifizierung durch paarweise Kopplung von TF Wu, C.J. Lin und R.C. Weng.
In Abschnitt 7.3 wird gesagt, dass die Entscheidungen und Wahrscheinlichkeiten sich unterscheiden können:
... Wir erklären, warum die Ergebnisse durch Wahrscheinlichkeitsbasierte und entscheidungswertbasierte Methoden können so verschieden sein. Für einige Probleme, Die Parameter, die durch δDV ausgewählt werden, unterscheiden sich stark von denen des andere fünf Regeln. In Wellenform, bei einigen Parametern alle Wahrscheinlichkeitsbasierte Methoden ergeben eine wesentlich höhere Genauigkeit der Kreuzvalidierung als δDV. Wir beobachten zum Beispiel die Entscheidungswerte der Validierung Sätze sind in [0.73, 0.97] und [0.93, 1.02] für Daten in zwei Klassen; Daher werden alle Daten in den Validierungssätzen als in einer Klasse klassifiziert und der Fehler ist hoch. Im Gegenteil, die Wahrscheinlichkeitsbasierten Methoden passen Sie die Entscheidungswerte durch eine Sigmoid-Funktion an, die besser sein kann Trennen Sie die zwei Klassen durch Schneiden bei einem Entscheidungswert um 0,95. Diese Beobachtung erhellt den Unterschied zwischen Wahrscheinlichkeitsbasierte und entscheidungswertbasierte Methoden ...
Ich bin mit diesen Methoden nicht vertraut genug, um das Problem zu verstehen, aber vielleicht tust du das. Es sieht so aus, als ob es verschiedene Methoden zur Vorhersage mit Wahrscheinlichkeiten und eine andere Methode gibt, und type=response
entspricht einer anderen Methode als die eine, die für Vorhersagewahrscheinlichkeiten verwendet wird.