Kann mir bitte jemand erklären, wie man eine ROC-Kurve mit ROCR plottet. Ich weiß, dass ich zunächst laufen:ROC-Kurve in R mit ROCR-Paket
prediction(predictions, labels, label.ordering = NULL)
und dann:
performance(prediction.obj, measure, x.measure="cutoff", ...)
Ich bin klar einfach nicht, was mit Vorhersage und Etiketten gemeint ist. Ich habe ein Modell mit ctree und cforest erstellt und möchte die ROC-Kurve für beide, um sie am Ende zu vergleichen. In meinem Fall ist das Klassenattribut y_n, was vermutlich für die Labels verwendet werden sollte. Aber was ist mit den Vorhersagen? Hier sind die Schritte von dem, was ich tun (Dataset name = bank_part):
pred<-cforest(y_n~.,bank_part)
tablebank<-table(predict(pred),bank_part$y_n)
prediction(tablebank, bank_part$y_n)
Nach dem Ausführen der letzten Zeile ich diesen Fehler:
Error in prediction(tablebank, bank_part$y_n) :
Number of cross-validation runs must be equal for predictions and labels.
Vielen Dank im Voraus!
Hier ist ein weiteres Beispiel: Ich habe den Trainingsdatensatz (bank_training) und Testdatensatz (bank_testing) und ich lief wie unten einen Random:
bankrf<-randomForest(y~., bank_training, mtry=4, ntree=2,
keep.forest=TRUE,importance=TRUE)
bankrf.pred<-predict(bankrf, bank_testing, type='response')
Nun ist die bankrf.pred ist ein Objekt Faktor = Etikett c ("0", "1"). Trotzdem weiß ich nicht, wie man ROC plottet, weil ich am Vorhersageteil festhalte. Hier ist, was ich tun
library(ROCR)
pred<-prediction(bankrf.pred$y, bank_testing$c(0,1)
Aber das ist immer noch falsch, weil ich die Fehlermeldung
Error in bankrf.pred$y_n : $ operator is invalid for atomic vectors
Wenn Sie ein vollständiges, eigenständiges Beispiel angegeben haben, erhalten Sie möglicherweise eine größere Zielgruppe, die Ihnen helfen kann. Siehe http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example für einige Tipps, wie man das macht. –