R包pROC总是报告AUC> 0.5

时间:2017-11-30 09:00:47

标签: r roc

两者

pROC::auc(0:1, 1:0)
pROC::auc(0:1, 0:1)

给出AUC为1 ..

通过更多实验,它似乎总是返回最大值(AUC,1 - AUC)。 有没有选择改变这个? 我找不到GitHub回购来报告这个问题。

2 个答案:

答案 0 :(得分:4)

pROC::roc中,有一个参数direction,默认设置为auto。 来自roc的文档:

  

方向 - 在哪个方向进行比较? “自动”(默认):   自动定义中位数在哪个组中更高并取得   相应的方向。 “>”:如果预测值为控件值   group高于case组的值(controls> t> =   例)。 “<”:如果对照组的预测值较低   或者等于案例组的值(控制< t< = case)。

pROC::auc(0:1, 1:0, direction = "<")
pROC::auc(0:1, 0:1,  direction = "<")

Calimo的评论中给出了对这种基本原理的解释:没有理由认为更高的预测值在所有情况下都更为积极。如在模型中指示负类的概率

有关此问题的更多信息可见here

答案 1 :(得分:2)

在ModelMetrics中尝试auc函数:

ModelMetrics::auc(0:1, 1:0)
ModelMetrics::auc(0:1, 0:1)

输出:

[1] 0
[1] 1