Grundlegendes zur ROC-Kurve

57

Ich habe Probleme, die ROC-Kurve zu verstehen.

Gibt es einen Vorteil / eine Verbesserung in der Fläche unter der ROC-Kurve, wenn ich aus jeder eindeutigen Teilmenge des Trainingssatzes verschiedene Modelle baue und sie zur Erstellung einer Wahrscheinlichkeit verwende? Wenn zum Beispiel Werte von { a , a , a , a , b , b , b , b } hat und ich Modell A unter Verwendung eines Wertes von 1 bis 4 von y und eines Wertes von 8 bis 9 von y und build aufbaue Modell B unter Verwendung der verbliebenen Zugdaten. Schließlich erzeugen Wahrscheinlichkeit. Alle Gedanken / Kommentare werden sehr geschätzt.y{a,a,a,a,b,b,b,b}AayyB

Hier ist der Code für eine bessere Erklärung meiner Frage:

Y    = factor(0,0,0,0,1,1,1,1)
X    = matirx(rnorm(16,8,2))
ind  = c(1,4,8,9)
ind2 = -ind

mod_A    = rpart(Y[ind]~X[ind,])
mod_B    = rpart(Y[-ind]~X[-ind,])
mod_full = rpart(Y~X)

pred = numeric(8)
pred_combine[ind]  = predict(mod_A,type='prob')
pred_combine[-ind] = predict(mod_B,type='prob')
pred_full          = predict(mod_full, type='prob')

Also meine Frage ist, die Fläche unter ROC - Kurve von pred_combinevs pred_full.

Tay Shin
quelle
3
Ein besseres Beispiel würde viel zur Verbesserung der Frage beitragen.
mpiktas
Meines Wissens nach möchten Sie die AUC erhöhen, indem Sie bestimmte Proben auswählen? Wenn dies Ihr Ziel ist, bin ich der festen Überzeugung, dass dieser Ansatz der voreingenommenen Stichprobenauswahl völlig falsch ist, zumindest wenn Sie ein gutes Maß für die Klassifizierungsleistung finden möchten.
Rapaio
2
Schauen Sie sich die interaktive Demo von ROC
Alleo

Antworten:

174

Ich bin nicht sicher, ob ich die Frage bekommen habe, aber da der Titel nach einer Erklärung der ROC-Kurven fragt, werde ich es versuchen.

ROC-Kurven werden verwendet, um festzustellen, wie gut Ihr Klassifikator positive und negative Beispiele trennen kann, und um den besten Schwellenwert für die Trennung zu ermitteln.

Um die ROC-Kurve verwenden zu können, muss Ihr Klassifikator eine Rangfolge haben - das heißt, er sollte in der Lage sein, Beispiele so zu klassifizieren, dass diejenigen mit höherem Rang eher positiv sind. Beispielsweise gibt die logistische Regression Wahrscheinlichkeiten aus, die Sie für die Rangfolge verwenden können.

ROC-Kurve zeichnen

Gegeben ein Datensatz und ein Ranking-Klassifikator:

  • ordne die Testbeispiele nach der Punktzahl von der höchsten zur niedrigsten
  • (0,0)
  • x
    • x1/pos
    • x1/neg

posneg

Dieses schöne GIF-animierte Bild soll diesen Vorgang deutlicher veranschaulichen

die Kurve bauen

yx

Bereich unter ROC

Bereich unter ROC

Der Bereich unter der ROC-Kurve (schattiert) gibt natürlich an, wie weit die Kurve von der Basislinie entfernt ist. Für die Grundlinie ist es 0,5 und für den perfekten Klassifikator ist es 1.

Mehr über AUC ROC erfahren Sie in dieser Frage: Wofür steht AUC und was ist das?

Auswahl des besten Schwellenwerts

Ich werde kurz den Auswahlprozess für den besten Schwellenwert skizzieren. Weitere Details finden Sie in der Referenz.

Um den besten Schwellenwert auszuwählen, wird jeder Punkt Ihrer ROC-Kurve als separater Klassifikator angezeigt. Dieser Mini-Klassifikator verwendet die Punktzahl als Grenze zwischen + und - (dh er klassifiziert alle Punkte über der aktuellen als +).

Abhängig vom pos / neg-Anteil in unserem Datensatz - parallel zur Basislinie bei 50% / 50% - erstellen Sie ISO-Genauigkeitslinien und nehmen die mit der besten Genauigkeit.

Hier ist ein Bild, das dies illustriert, und für Einzelheiten lade ich Sie erneut zur Referenz ein

Auswahl der besten Schwelle

Referenz

Alexey Grigorev
quelle
Danke für den tollen Kommentar! Es tut mir leid, dass ich nicht für Ihre Antwort stimmen konnte, es scheint, dass ich mehr als 15 Ruf haben muss :(
Tay Shin
Nur neugierig, Ihre Schrittgröße müsste von der Anzahl der positiven / negativen Etiketten abhängen, die von Ihrem Klassifikator erzeugt wurden. Richtig? Dh im GIF ist die Schrittgröße nach oben 0,1, wenn Sie eine zusätzliche positive Beschriftung (anstelle einer negativen Beschriftung) hatten, würde die "Kurve" auf der vertikalen Achse bei 1,1 enden (oder mir fehlt etwas) ?). In diesem Fall muss Ihre Schrittgröße also kleiner sein?
Kyphos
Nein, die Schrittweite hängt von der Anzahl der positiven / negativen Beispiele im Datensatz ab, nicht von der Genauigkeit des Klassifikators.
Alexey Grigorev
2
@gung verstanden. Alexey: Anstelle von positiven und negativen Beispielen sollte es meiner Meinung nach sein: wahre positive und falsche positive. Möglicherweise können Sie meine Ausgabe der Antwort sehen, die von Gung zurückgesetzt wurde. danke
Rolltreppe
3
@AlexeyGrigorev, liebe die Antwort, die du gibst und stimme ab. Ich bin mir nicht sicher, ob es zwei ROC-Definitionen gibt. Ich beziehe mich hier auf die ROC-Definition ( en.wikipedia.org/wiki/Receiver_operating_characteristic ). Die x-Achse sollte eine falsch positive Rate sein, dh ( Anzahl der Vorhersagen positiv, aber negativ) / (Anzahl der Gesamtvorhersagen) negativ), ich denke in der Referenz, ich denke, die x-Achse zeichnet keine falsch positive Rate, die die (# von total negativ) nicht berücksichtigt?
Lin Ma