ROCR
图书馆在 R
提供能力 情节平均 ROC 曲线(来自 ROCR reference manual):
library(ROCR)
library(ROCR)
data(ROCR.xval)
# plot ROC curves for several cross-validation runs (dotted
# in grey), overlaid by the vertical average curve and boxplots
# showing the vertical spread around the average.
data(ROCR.xval)
pred <- prediction(ROCR.xval$predictions, ROCR.xval$labels)
perf <- performance(pred,"tpr","fpr")
plot(perf,col="grey82",lty=3)
plot(perf,lwd=3,avg="vertical",spread.estimate="boxplot",add=TRUE)
迷人的。不幸的是,似乎无法将平均 ROC 曲线本身作为对象/数据帧/等获取。用于进一步的统计测试(例如,使用
pROC
)。我确实做了一些研究(尽管可能是在事实之后),我发现了这篇文章:Global variables in R
我查看了 ROCR 的代码,发现以下几行用于将结果传递给绘图:
performance_plots.R
,(从第 451 行开始)## compute average curve
perf.avg <- perf.sampled
perf.avg@x.values <- list( rowMeans( data.frame( perf.avg@x.values)))
perf.avg@y.values <- list(rowMeans( data.frame( perf.avg@y.values)))
perf.avg@alpha.values <- list( alpha.values )
因此,使用
trace
我在这里查找的函数( General suggestions for debugging in R ):trace(.performance.plot.horizontal.avg, edit=TRUE)
我将以下行添加到
performance_plots.R
在上面列出的行之后:perf.rocr.avg <<- perf.avg # note the double `<<`
一个可怕的黑客,但它的工作原理我可以绘制
perf.rocr.avg
没有问题。不幸的是,在使用 pROC
时,我无法比较我的平均 ROC 曲线,因为它需要 pROC
roc
目的。没关系,但问题是 pROC
roc
object 需要原始预测和引用数据来创建。据我所知,ROCR
正在平均 ROC 曲线本身而不是预测,所以似乎我无法从 ROCR
中得到我想要的东西.有没有办法对
ROCR
创建的平均 ROC 曲线的预测进行逆向工程? ?
最佳答案
我遇到了和你一样的问题。在我看来,ROCR 包生成的平均 ROC 只是分配了数值,而缺乏其他统计属性(例如置信区间)。这意味着平均 ROC 的统计数据可能没有意义,这就是为什么不能通过 PROc 包中的 (tpr, fpr) 列表生成 roc 对象的原因。但是,我找到了一篇论文来解决这个问题,即平均 ROC 之间的比较。标题是“相关接收者操作特征曲线下的平均面积:基于广义二样本威尔科克森统计的非参数方法”。我希望这会有所帮助。
关于r - 如何使用 ROCR 提取平均 ROC 曲线预测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36829977/