为什么我的 ROC 曲线看起来像 V 形?

Why does my ROC curve look like a V?

newpred <- c(1, 0 ,0 ,1 ,0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0,0, 1, 0, 0,
0, 0,0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0,
 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0,  
 1,0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1,
 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0)                    


       newlab <- c(0, 0 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,0,
                   0, 0 ,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                   0 ,0, 1, 1, 0, 0, 0, 0, 0, 0, 1,
                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                    0, 1 ,0, 0 ,0, 0 ,0, 0 ,1, 0 ,0, 0 ,0, 0 ,0,
                   0, 0 ,1 ,0 ,0 ,0 ,0 ,0 ,0 ,1,
                    0 ,1, 0 ,1, 0 ,0, 0 ,0, 0 ,0, 0 ,0, 0 ,0, 0 ,0)

所以第一个向量是我的预测,第二个向量是参考。我不明白为什么我的曲线看起来像 V。我从来没有见过这样的 ROC 曲线!我的顾问要我添加点,通过添加更多点来使图形 smoother/more 弯曲。我尝试使用 pROC 绘制图表,但我唯一可以添加的参数是预测和参考。

我也试过 ROCR

print.cutoffs.at=seq(0,1,by=0.1), text.adj=c(-0.2,1.7))

得到这个

如何平滑曲线或添加更多点?

ROC 图用于检查 概率 class 的性能,这意味着输出响应变量的概率是 class A 或 class B.

从预测概率到硬预测 class 标签的方法是设置一个截止点:如果 class A 中的预测概率大于截止点,则为其分配标签 A。否则为其分配 B。

通常人们使用 0.5 的值作为截止值,以便将观察值分配给 class 概率最高的那个。但是,没有什么可以阻止您使用不同的截止值。如果您使用较高的截止值,例如 0.9,那么您将看到很少的观​​察值分配给 A——这就像告诉您的 classifer 仅当它非常确信这是正确的值时才将某物标记为 A。反之亦然,如果你使用低截止值——在这种情况下,只有当你非常确信 B 是正确的值时,你才将某些东西标记为 B。

ROC 图基本上是通过滑动 将截止值从 0 滑动到 1,并查看生成的预测标签与实际标签的比较情况而生成的。但这假设您首先有一个潜在的概率预测。你只有预测的标签,这就是你的情节退化的原因。