有人可以解释一下如何用 ROCR 绘制 ROC 曲线。我知道我应该首先运行:
prediction(predictions, labels, label.ordering = NULL)
接着:
performance(prediction.obj, measure, x.measure="cutoff", ...)
我只是不清楚预测和标签是什么意思。我用 ctree 和 cforest 创建了一个模型,我希望他们两个的 ROC 曲线最后进行比较。在我的例子中,类属性是 y_n,我想它应该用于标签。但是预测呢?以下是我所做的步骤(数据集名称= bank_part):
pred<-cforest(y_n~.,bank_part)
tablebank<-table(predict(pred),bank_part$y_n)
prediction(tablebank, bank_part$y_n)
运行最后一行后,我收到此错误:
Error in prediction(tablebank, bank_part$y_n) :
Number of cross-validation runs must be equal for predictions and labels.
提前致谢!
这是另一个例子:我有训练数据集(bank_training)和测试数据集(bank_testing),我运行了一个随机森林,如下所示:
bankrf<-randomForest(y~., bank_training, mtry=4, ntree=2,
keep.forest=TRUE,importance=TRUE)
bankrf.pred<-predict(bankrf, bank_testing, type='response')
现在 bankrf.pred 是一个带有标签 c=("0", "1") 的因子对象。不过,我不知道如何绘制 ROC,因为我陷入了预测部分。这就是我所做的
library(ROCR)
pred<-prediction(bankrf.pred$y, bank_testing$c(0,1)
但这仍然不正确,因为我收到错误消息
Error in bankrf.pred$y_n : $ operator is invalid for atomic vectors