我正在为我实施的一系列分类器绘制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]])
这里有两个问题:
非常感谢任何帮助。谢谢!
答案 0 :(得分:3)
C5.0 documentation的预测部分解释了:
当在main函数中使用cost参数时,从类派生的类概率 终端节点中的分布可能与最终预测的类不一致。为了这 原因是,使用不等成本从模型中请求类概率会引发错误。
为了解决这个问题,让我们说你想给予积极的阶级更多的权重,那么你可以从积极的东西中过度抽样,或者从阴性中抽取不足的样本(我更喜欢后者)。这将与应用成本具有类似的效果,然后允许您获取概率并生成ROC曲线。