gpt4 book ai didi

使用 ROCR 包的 R 中的 ROC 曲线

转载 作者:行者123 更新时间:2023-12-02 08:13:16 25 4
gpt4 key购买 nike

有人可以解释一下如何用 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

最佳答案

预测是对分类的连续预测,标签是每个变量的二元真值。

所以像下面这样的东西应该有效:

> pred <- prediction(c(0.1,.5,.3,.8,.9,.4,.9,.5), c(0,0,0,1,1,1,1,1))
> perf <- performance(pred, "tpr", "fpr")
> plot(perf)

生成 ROC。

编辑:在问题中包含示例可重现代码可能会对您有所帮助(我很难解释您的评论)。

这里没有新代码,但是...这是我经常使用的绘制 ROC 的函数:

 plotROC <- function(truth, predicted, ...){
pred <- prediction(abs(predicted), truth)
perf <- performance(pred,"tpr","fpr")

plot(perf, ...)
}

关于使用 ROCR 包的 R 中的 ROC 曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11467855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com