奇怪的ROC曲线

时间:2016-09-28 06:55:51

标签: r random-forest prediction curve roc

在构建高度不平衡的两级预测的随机森林模型时,我得到了奇怪的ROC曲线结果。样本中的原始事件率约为2%,我正在使用加权来对抗类不平衡 在这种情况下,我对样本进行加权,使事件发生率为1:4(25%) 我的模型按以下方式设置:

forest <- ranger(data = sample[,c('fraud', features)]
                 , num.trees = 350
                 , case.weights = sample$wt
                 , probability = T
                 , importance = 'impurity'
                 , write.forest = T
                 , sample.fraction = 0.5
                 , seed = 98
                 , dependent.variable.name = 'fraud')

我在这个设置中得到了相当不错的结果,你可以在下面的混淆矩阵中看到

    predicted
true      0      1
   0 815800  11391
   1  13283   5503
True negative rate - 29%
Negative predictive value - 33%

然而,当我绘制ROC曲线时,我得到以下情节

perf <- prediction(forest$predictions[,2], sample$fraud)
pred3 <- performance(perf, "tnr", "fnr")
plot(pred3, main="ROC Curve for Random Forest", col="blue", lwd=2)
abline(a=0,b=1,lwd=2,lty=2,col="gray")

enter image description here

我无法理解为什么我的预测仅在决策间隔的50%之后开始执行。你们有线索或以前的经验吗?

1 个答案:

答案 0 :(得分:0)

我们通常会在ROC曲线中绘制真阳性率和假阳性率...但您有正负和假阴性。也许这就是原因。