r - 如何使用 ROCR 提取平均 ROC 曲线预测?

标签 r roc

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)

Averaged ROC plot with boxplot

迷人的。不幸的是,似乎无法将平均 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/

相关文章:

matlab - 带 ROC 分析的 KNN 分类器

python - ROC 下的 sklearn svm 区域小于 0.5 用于训练数据

python - 绘制 K 折交叉验证的 ROC 曲线

r - 提取 R 数据框中两个日期之间的分段

machine-learning - 元素的ROC曲线计算

python - 在 Python 中创建阈值编码的 ROC 图

r - 带下标的 Unicode 字符

r - 当分组因子有缺失值时,基本 R 中的箱线图能否显示 'NA'?

r - 什么是 “object of type ‘closure’ is not subsettable” 在 Shiny 中的错误?

r - 在 R 中的轴标签中绘制表情符号/自定义图像