使用C.50与成本进行预测时出错,并使用type =“prob”进行预测以在R中绘制ROC曲线

时间:2015-09-17 15:05:09

标签: r decision-tree roc

我正在为我实施的一系列分类器绘制ROC曲线。问题是,当我有一个带有成本矩阵的C.50分类器(我正在使用RStudio)时,我得到了下一条错误消息。

  

predict.C5.0中的错误(classifier.cost.1,data,type =“prob”):置信度值(即类概率)不应与成本一起使用。

分类器很好,当我在predict命令中不使用type =“prob”时,它也可以正常工作,但我不能绘制ROC曲线。

这是我用来创建自己的ROC曲线的代码:

pred.class.cost <- predict(classifier.cost.1, data, type="prob")
perf.class.cost <- performance(prediction(pred.class.cost[,2], data$class),"tpr","fpr")
ROC.class.cost <- data.frame(x=perf.class.cost@x.values[[1]],y=perf.class.cost@y.values[[1]])

这里有两个问题:

  1. 错误意味着什么,我该如何解决?
  2. 如果无法修复它,还有其他方法来创建我自己的ROC曲线吗? (然后我使用ggplot2获取所有ROC曲线并将它们绘制在一起。
  3. 非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:3)

C5.0 documentation的预测部分解释了:

  

当在main函数中使用cost参数时,从类派生的类概率   终端节点中的分布可能与最终预测的类不一致。为了这   原因是,使用不等成本从模型中请求类概率会引发错误。

为了解决这个问题,让我们说你想给予积极的阶级更多的权重,那么你可以从积极的东西中过度抽样,或者从阴性中抽取不足的样本(我更喜欢后者)。这将与应用成本具有类似的效果,然后允许您获取概率并生成ROC曲线。