2016-05-31 12 views
1

Ich habe das ROCR-Paket verwendet, um eine kolorierte Roc-Kurve zu zeichnen. Die Kurve selbst hat kein Problem und sieht gut aus, aber die Palette zeigt, dass Cutoff Punkte größer als 1 sind, was falsch ist, da diese Wahrscheinlichkeiten sind und im Bereich von 0 bis 1 liegen sollten. Ich habe meinen Datensatz mehrmals überprüft scheint in Ordnung und es ist nichts falsch mit meinem Datensatz.Kolorierte ROC-Kurve mit Cutoff-Werten größer als eins im ROCR-Paket

Hier ist der Code zusammen mit den Vorhersagen und ihren entsprechenden Bezeichnungen. here is the plotted roc curve for my classification

Meine erste Vermutung ist, dass es einen Fehler im ROCR-Paket gibt, aber ich bin mir nicht ganz sicher. Jede Hilfe, um es herauszufinden, würde geschätzt werden.

library(ROCR) 
labels <-c(1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) 
scores<-c(1,1,1,0.8,1,1,1,0.95,1,1,1,1,1,0,0,0,0,0,0,0.97,0,0,0,0,0,0,0,0,0,0,0,0.206,0) 
pred<-prediction(scores,labels) 
perf<-performance(pred,"tpr","fpr") 
plot(perf,colorize=TRUE) 

Antwort

0

scheint, dass Sie einen Fehler in ROCR gefunden, die durch die ersten cutoffInf zu sein, was wiederum den ersten Eintrag von alpha.values verursacht Inf auch zu sein:

> attributes(pred)$cutoffs[[1]] 
[1] Inf 1.000 0.970 0.950 0.800 0.206 0.000 
> attributes(perf)$alpha.values[[1]] 
[1] Inf 1.000 0.970 0.950 0.800 0.206 0.000 

Dies wäre ein nicht Problem so weit, aber es scheint alpha.values wird für die Farbgebung verwendet, die für dieses seltsame Verhalten führen könnte. Einstellen des ersten Eintrag 1 statt Inf behebt das Problem, die Verwendung als eine schnelle Lösung für dieses Problem sein könnte:

> attributes(perf)$alpha.values[[1]][1] <- 1 
> attributes(perf)$alpha.values[[1]] 
[1] 1.000 1.000 0.970 0.950 0.800 0.206 0.000 
> plot(perf,colorize=TRUE) 

ROC

+0

Hallo geekoverdose. Danke, das stimmt. Es scheint jetzt vernünftig :) – Rahman