Qualcuno può spiegarmi per favore come tracciare una curva ROC con ROCR. So che avrei dovuto eseguire prima:curva ROC in R utilizzando il pacchetto ROCR
prediction(predictions, labels, label.ordering = NULL)
e poi:
performance(prediction.obj, measure, x.measure="cutoff", ...)
non sto solo chiaro che cosa si intenda con la previsione ed etichette. Ho creato un modello con ctree e cforest e voglio la curva ROC per entrambi di confrontarlo alla fine. Nel mio caso l'attributo di classe è y_n, che suppongo dovrebbe essere usato per le etichette. Ma per quanto riguarda le previsioni? Ecco i passi di quello che faccio (dataset name = bank_part):
pred<-cforest(y_n~.,bank_part)
tablebank<-table(predict(pred),bank_part$y_n)
prediction(tablebank, bank_part$y_n)
Dopo aver eseguito l'ultima riga ottengo questo errore:
Error in prediction(tablebank, bank_part$y_n) :
Number of cross-validation runs must be equal for predictions and labels.
Grazie in anticipo!
Ecco un altro esempio: ho il set di dati di formazione (bank_training) e test set di dati (bank_testing) e ho corso una foresta casuale, come di seguito:
bankrf<-randomForest(y~., bank_training, mtry=4, ntree=2,
keep.forest=TRUE,importance=TRUE)
bankrf.pred<-predict(bankrf, bank_testing, type='response')
Ora il bankrf.pred è un oggetto fattore con etichette c = ("0", "1"). Tuttavia, non so come tracciare la ROC, perché rimango bloccato nella parte di previsione. Qui è quello che faccio
library(ROCR)
pred<-prediction(bankrf.pred$y, bank_testing$c(0,1)
ma questo è ancora errato, perché io il messaggio di errore
Error in bankrf.pred$y_n : $ operator is invalid for atomic vectors
Se hai fornito un esempio completo e autosufficiente, potresti ottenere un pubblico più ampio che può aiutarti. Vedi http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example per alcuni suggerimenti su come farlo. –