【发布时间】:2017-02-05 23:52:30
【问题描述】:
在为高度不平衡的两类预测构建随机森林模型时,我得到了奇怪的 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% 的决策间隔后才开始执行。你们有什么线索或以前的经验吗?
【问题讨论】:
标签: r random-forest prediction curve roc