在构建高度不平衡的两级预测的随机森林模型时,我得到了奇怪的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")
我无法理解为什么我的预测仅在决策间隔的50%之后开始执行。你们有线索或以前的经验吗?
答案 0 :(得分:0)
我们通常会在ROC曲线中绘制真阳性率和假阳性率...但您有正负和假阴性。也许这就是原因。