2016-06-26 23 views
0

Während der SMO-Klassifikator in weka ausgeführt wird, wenn ich meine Trainingsetiketten als 0 und 5 eingegeben habe (A binary set), dann während das Klassifikatormodell läuft Testdaten, sind die Ausgaben einige Dezimalwerte zwischen 0 und 5, die in einem späteren Schritt eindeutig in die beiden Binärbezeichnungen klassifiziert werden, oder gibt es keine dazwischenliegenden Dezimalwerte?Genaue Ausgabewerte der SMO-Klassifikation erhalten, bevor sie klar in Klassen eingeteilt werden

Wenn sie vorhanden sind, wie diese Zwischen Dezimalwerte erhalten?

(ZB, in dem obigen Modell, weist der Klassifizierer smo/svm Werte wie 1, 2, 3 und 4 oder einen anderen Dezimal/Gleitkommawert innerhalb des gegebenen Bereichs zu und dann werden diese entsprechend unter 0 und gruppiert 5 Wertklassen).

Antwort

1

Es gibt kein Konzept von "Label-Wert" in der Klassifizierung. Label ist nur ein Bezeichner, kein vergleichbares Objekt, das bestimmten Instanzen Ihres Problems zugeordnet ist. "0" und "5" könnten auch "Löwe" und "Elefant" sein.

Für SVM im Besonderen (WEKA gemacht eine schreckliche Sache für die wissenschaftliche Gemeinschaft, indem man Leute SVM eine SMO nennen, nur weil das der Löseralgorithmus ist, der innen verwendet wird ...) jede Kennzeichnung wird in "-1" und "umgewandelt" +1 ". Intern hat SVM ein Unterstützungskonzept, da es Ihren Datenpunkt linear projiziert, so dass ein Wert von ganz R (-inf, + inf) erhalten wird, und weist dem Label ein Vorzeichen zu. Dies ist im groben Sinne eine Art Modellgewissheit (jedoch nicht im probabilistischen Sinne kalibriert, also bedeutet "0.01" nichts anderes als "weniger als 0.02", aber man kann nicht einmal sagen, dass 0.01 so oft unsicherer ist ein Punkt mit 0,02, da gibt es keine vernünftige Skalierung dieser Werte.

In „reiner“ weka gibt es classifier.distributionForInstance(), das diese Werte zurückzugibt. In weka-Explorer auf dem classify Registerkarte, klicken sie auf More options... und kreuzt Output predictions sie zu bekommen.

+0

Wenn ich eine Eingabe von zwei Klassen im Klassifikator habe, werden dann die Ausgabevorhersagen nur Werte für jene Punkte liefern, die näher an der trennenden SVM-Hyperebene sind? Mein Klassifikator se ems, um nur 0.444, 0.555 Werte abgesehen von einem 0 zu geben. – codeninja

+1

Es sollte Werte für alle Punkte bereitstellen – lejlot