2016-09-28 186 views
0

当我建立一个高度不平衡的两级预测的随机森林模型时,我有ROC曲线奇怪的结果。样本中的原始事件率为〜2%,我正在使用权重来对抗阶级失衡。
在这种情况下,我已经加权我的样本,这样的事件发生率是1:4(25%)
我的模型是建立在以下方式:奇怪的ROC曲线

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

我们通常绘制ROC曲线中的真阳性率和假阳性率......但您有TRUE阴性和假阴性。也许这就是为什么。

+0

那真的没关系,如果我交换课程呢? 我正在经历同样的故事,如果我画其他班的曲线... – MiksL