Frage:
Formen von ROC-Kurven für verschiedene Klassifikatoren ('steppy' für SVM und glatt für k-NN)
Jayjay95
2017-08-28 07:33:42 UTC
view on stackexchange narkive permalink

Bei der Erstellung der ROC-Kurve für verschiedene Klassifikatoren habe ich festgestellt, dass ihre tatsächlichen Formen für Modelle wie logistische Regression oder SVM im Vergleich zu k-NN sehr unterschiedlich sind.Zum Beispiel sehen wir im Bild unten eine ROC-Kurve, die einem k-NN-Klassifikator entspricht, und wie zu sehen ist, gibt es kaum "Schritte" oder Sprünge, wenn überhaupt, die daher ziemlich glatt sind.Wenn wir andererseits die ROC-Kurve beobachten, die ich für das SVM-Modell erhalte, sind die Schritte definitiv häufiger.Ich habe dies für verschiedene Datensätze versucht, und Schritte oder Sprünge scheinen im Fall der ROC-Kurve für k-NN beim Scikit-Lernen immer zu fehlen.Ich weiß nicht, ob R das auch tut.Weiß jemand, warum die ROC-Kurve für k-NN diese spezifische Form annehmen könnte, während die für SVM oder LR deutlich mehr Schritte beinhalten?Vielen Dank im Voraus.

enter image description here

enter image description here

Wie erstellen Sie diese ROC-Kurven?Eigentlich sollte jede ROC-Kurve wie Ihr zweites Beispiel aussehen: Sie muss diskrete Sprünge machen, wenn neue Datenpunkte als Mitglieder der positiven Klasse klassifiziert werden.Es kann wirklich nicht passieren, dass eine ROC-Kurve wie im ersten Beispiel stückweise linear ist.
@MatthewDrury Je nachdem, wie Sie mit Bindungen umgehen, kann es zu einer stückweisen Linearität kommen.
....Denken....
@MatthewDrury Diese ROC-Kurven werden beim Scikit-Lernen erstellt, und für das k-NN ist eins $ k = 9 $ und $ p = 1 $.Umgekehrt gilt für SVM $ \ gamma = 0,1 $ und $ C = 2 ^ {- 5} $.Und es kann definitiv passieren, wie gesagt, ich habe dies mit mehreren Datensätzen überprüft.Wenn Sie sich diesen Link ansehen, den ich im Internet gefunden habe, scheinen sie für k-NN eine ähnliche ROC-Kurvenform zu erhalten wie ich: http://www.stat.washington.edu/courses/stat391/spring13/_images/hw8_roc_1.png,
Einer antworten:
Calimo
2017-08-28 11:30:27 UTC
view on stackexchange narkive permalink

Diagonale Linien treten in ROC-Kurven auf, wenn Sie Bindungen haben, dh wenn Sie eine oder mehrere Beobachtungen mit genau demselben Testwert sowohl in der positiven als auch in der negativen Gruppe haben.

SVM-Klassifizierer geben kontinuierliche Wahrscheinlichkeiten aus.Die Chance, ein Unentschieden zu bekommen, ist normalerweise sehr gering.Aus diesem Grund erhalten Sie eine "stufenförmige" Kurve.

Andererseits sind die Ausgangswahrscheinlichkeiten aufgrund der begrenzten Anzahl von Beobachtungen, die eine k-NN-Entscheidung treffen, typischerweise nicht kontinuierlich.Wenn Sie beispielsweise einen k-NN-Klassifikator mit k = 3 betrachtet haben, können die Wahrscheinlichkeiten nur 1,0, 0,67, 0,33, 0 betragen. Es ist sehr wahrscheinlich, dass Sie diese Werte in beiden Gruppen beobachten, daher die Bindung und die diagonale Linie.

Das ist eine äußerst hilfreiche Antwort und macht durchaus Sinn!Mein k-NN verwendet derzeit $ k = 9 $ und $ p = 1 $, dh Manhattan-Entfernung, aber ich denke, das von Ihnen festgelegte Prinzip gilt auch für mein Modell.Außerdem habe ich für meinen Testsatz nur 13 Einsen von 88 Ergebnissen, was im Vergleich zu den Nullen ein sehr kleiner Bruchteil ist.Daher könnte dies auch Einfluss darauf haben.Kennen Sie ein Buch oder eine Referenz, die Ihre Erklärung zu erwähnen scheinen?Wenn eine ROC-Kurve viele Schritte enthält, bedeutet dies auch, dass viele Schwellenwerte festgelegt werden können, oder?Wieder eine erstaunliche Erklärung.
Normalerweise verweise ich gerne auf Fawcetts wirklich gute "Einführung in die ROC-Analyse" http://cvrr.ucsd.edu/ece285/papers/Fawcett_IntroductionToROC.pdf.Siehe Abbildung 6 für diesen speziellen Fall.
Ich möchte nur der Erklärung hinzufügen, dass einige Varianten von Roc herkömmlicherweise einen Rumpf um die Stufen wickeln und den Bereich unter dieser Kurve anstelle der Stufenkurve vergleichen.Wenn also alle Ihre Kurven in einer Software stückweise linear sind, könnte dies der Grund sein.
Kleinere Anmerkung: SVM liefert natürlich keine Wahrscheinlichkeit für Vorhersagen, sondern einen vorzeichenbehafteten Abstand von der trennenden Hyperebene.Nachfolgende Methoden wie die Platt-Skalierung können eine Wahrscheinlichkeit erzwingen, sind jedoch der SVM selbst untergeordnet.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...