In der Diskussion: Wie man eine ROC-Kurve für die binäre Klassifikation erzeugt , war meiner Meinung nach die Verwirrung, dass ein "binärer Klassifikator" (ein Klassifikator, der zwei Klassen trennt) für Yang ein so genannter "diskreter Klassifikator" war (der erzeugt) diskrete Ausgänge (0/1 wie ein SVM) und keine kontinuierlichen Ausgänge wie ANN- oder Bayes-Klassifizierer ... usw. Die Diskussion drehte sich also darum, wie der ROC für "binäre kontinuierliche Klassifizierer" aufgezeichnet wird, und die Antwort lautet, dass die Ausgänge sortiert sind nach ihren Bewertungen, da die Ausgaben kontinuierlich sind und ein Schwellenwert verwendet wird, um jeden Punkt auf der ROC-Kurve zu erzeugen.
Meine Frage ist für "binäre diskrete Klassifizierer" wie SVM, die Ausgabewerte sind 0 oder 1. Der ROC erzeugt also nur einen Punkt und keine Kurve. Ich bin verwirrt, warum wir es immer noch eine Kurve nennen? !! Können wir noch über Schwellen sprechen? Wie kann man Schwellenwerte insbesondere in SVM verwenden? Wie kann man die AUC berechnen ?, spielt hier die Kreuzvalidierung eine Rolle?
quelle
Antworten:
Ja, es gibt Situationen, in denen die normale Betriebskurve des Empfängers nicht erhalten werden kann und nur ein Punkt vorhanden ist.
SVMs können so eingerichtet werden, dass sie Klassenmitgliedschaftswahrscheinlichkeiten ausgeben. Dies wäre der übliche Wert , für den ein Schwellenwert Betreiben eines Empfängers zu erzeugen , variiert werden würde Kurve .
Ist es das wonach du suchst?
Schritte im ROC erfolgen normalerweise mit einer geringen Anzahl von Testfällen, anstatt mit diskreten Variationen in der Kovariate zu tun zu haben (insbesondere erhalten Sie dieselben Punkte, wenn Sie Ihre diskreten Schwellenwerte so wählen, dass sich für jeden neuen Punkt nur eine Stichprobe ändert seine Zuordnung).
Das kontinuierliche Variieren anderer (Hyper-) Parameter des Modells erzeugt natürlich Sätze von Spezifitäts- / Empfindlichkeitspaaren, die andere Kurven im FPR; TPR-Koordinatensystem ergeben.
Die Interpretation einer Kurve hängt natürlich davon ab, durch welche Variation die Kurve erzeugt wurde.
Hier ist ein üblicher ROC (dh Anfordern von Wahrscheinlichkeiten als Ausgabe) für die "Versicolor" -Klasse des Iris-Datensatzes:
Gleiches Koordinatensystem, jedoch TPR und FPR als Funktion der Abstimmparameter γ und C:
FPR; TPR (γ, C = 1, Wahrscheinlichkeitsschwelle = 0,5):
FPR; TPR (γ = 1, C, Wahrscheinlichkeitsschwelle = 0,5):
Diese Diagramme haben zwar eine Bedeutung, aber die Bedeutung unterscheidet sich deutlich von der des üblichen ROC!
Hier ist der R-Code, den ich verwendet habe:
quelle
Normalerweise wird das vorhergesagte Label von SVM durch , wobei das SVM-optimierte ist Gewichte der Hyperebene, und das ist der SVM-optimierte Achsenabschnitt. Dies kann auch wie folgt umgeschrieben werden: y =sign(wTx+b)wb yy^ y^= Vorzeichen ( wTx +b) w b
Wenn wir jedoch einen Schwellenwert einzuführen , wir die positive Erkennungsrate durch Variation steuern , dh & eegr; yη η
Durch Variation von ; können wir einen ROC unter Verwendung von SVM erzeugen und dadurch die Empfindlichkeit und Spezifitätsrate anpassen.η
Wenn wir es zum Beispiel in Python machen wollen, können wir und mit threshold wie folgt extrahieren . bηw b η
quelle
In der ROC-Kurve ist die Spezifität gegen die Empfindlichkeit aufgetragen, die mit dem Schwellenwert einer Kovariate (die kontinuierlich oder diskret sein kann) variiert. Ich denke, Sie verwechseln die Kovariate mit der Antwort und verstehen möglicherweise nicht ganz, was eine ROC-Kurve ist. Es ist sicherlich eine Kurve, wenn die Kovariate stetig ist, und wir betrachten eine Schwelle für die Kovariate, die sich stetig ändert. Wenn die Kovariate diskret ist, können Sie immer noch als Funktion einer kontinuierlichen Schwelle zeichnen. Dann wäre die Kurve flach mit Schritten nach oben (oder unten) bei Schwellenwerten, die den diskreten Werten der Kovariate entsprechen. Dies würde also für SVM und andere diskrete Klassifikatoren gelten.
In Bezug auf die AUC können wir, da wir immer noch eine ROC haben (eine geschätzte), immer noch die Fläche berechnen, die darunter liegt. Ich bin mir nicht sicher, was Sie mit Ihrer Frage zur gegenseitigen Validierung im Sinn hatten. Im Zusammenhang mit Klassifizierungsproblemen wird die Kreuzvalidierung verwendet, um unvoreingenommene oder nahezu neutrale Schätzungen der Fehlerraten für den Klassifizierer zu erhalten. Damit kann festgelegt werden, wie wir die Punkte auf dem ROC schätzen.
quelle