2016-08-13 8 views
0

annehmen plotten ich die Klassifizierungsergebnisse eines Modells wie folgt formatiert:Verstehen, wie eine ROC-Kurve

actual.class score.actual.class 
A   1 
A   1 
A   0.6 
A   0.1 
B   0.5 
B   0.3 
.   . 
.   . 

1-Wenn ich gut verstehen, zeichnet die ROC-Kurve die zwischen wahren Positiven Abwägen und Fehlalarm. Das bedeutet, dass ich die Score-Schwelle für nur eine Klasse (die wahre Klasse) und nicht für beide variieren muss, oder? Ich meine, wenn ich A hier zur wahren Klasse auswähle, dann würde ich nur die subset(results,actual.class="A") verwenden, um die ROC-Kurve zu zeichnen?

2-Was, wenn ich die Kurve manuell (ohne Bibliotheken) generieren wollte, werden die Schwellenwerte jeweils mögliche Punktzahl von dieser Teilmenge sein?

3 - Wurden die folgenden Punkte korrekt aus den obigen Daten generiert, um die ROC-Kurve zu zeichnen? (Ich bin mit der Klasse A als die wahren Klasse)

threshold fpr tpr 
1   1 0 
0.6  1/2 1/2 
0.1  1/4 3/4  
0   0 1 

Ist dies die Punkte, die meine ROC gehen zu bilden?

Antwort

2

"Dies bedeutet, dass ich die Bewertungsschwelle für nur eine Klasse (die wahre Klasse) und nicht beide, oder?"

Es scheint ein Missverständnis zu geben, da es keine separate Schwelle für positiv oder negativ gibt. ROC-Kurven werden im Rahmen der Auswertung von binären Klassifikationsalgorithmen verwendet. In solchen Algorithmen werden Elemente, die nicht zu einem Typ gehören (TRUE), automatisch als Elemente des anderen Typs (FALSE) identifiziert.

Die Wahl der Schwelle kann nur die Balance verschieben, so dass mehr Beobachtungen einem Typ als dem anderen zugeordnet werden. Diese Variation der Schwelle ist der Parameter, der es erlaubt, eine ROC-Kurve zu zeichnen. Sonst wäre es nur ein Punkt.

Zu Ihrem dritten Punkt: Ja, soweit ich das anhand Ihres Beispiels feststellen kann, würde ich sagen, dass diese Art von Daten typischerweise eine ROC-Kurve darstellt.

+0

Sie können die Spezifität und Empfindlichkeit nicht unabhängig voneinander variieren. Diese Merkmale einer Konfusionsmatrix ergeben sich aus der (einzigen) Schwelle, die im binären Klassifikationsalgorithmus verwendet wird. – RHertel

+0

@lmerith Die von Ihnen geposteten Daten könnten vier Punkte einer ROC-Kurve darstellen. Zeichnen Sie jedes Paar tpr/fpr, das Sie für jeden Schwellenwert erhalten haben, in einem Quadrat mit fpr auf der x-Achse und tpr auf der y-Achse und verbinden Sie die Punkte. Je mehr Schwellenwerte Sie analysiert haben, desto mehr Punkte haben Sie, und die Kurve wird glatter, wenn das Modell ausreichend komplex ist. – RHertel

+0

@lmerith Ja, Spezifität und Sensitivität hängen im Allgemeinen von der Wahl des Schwellenwerts ab. Wie bei der ROC-Kurve sind dies Merkmale, die zur Bewertung der Qualität eines Modells verwendet werden. Dies sind keine Eingabewerte des Modells im Gegensatz zum Schwellenwert. – RHertel