考虑我有一个像A
这样的分类器,其分类结果给出了下表:
TP TN FP FN
A 225 100 175 100
TP为正值
TN是真正的否定
FP是假的Postive
FN是假阴性
我如何画出ROC的情节曲线?
我知道,我可以定义一个变量,并尝试基于A预测它,然后创建一个精确模拟上述值的数据帧,最后,我可以使用this代码。但我认为应该有一个更简单的方法吗?
答案 0 :(得分:3)
这是不可能的,因为您的分类器的某个(未知)阈值只有一个混淆矩阵。 ROC曲线包含有关所有可能阈值的信息。
混淆矩阵对应于ROC曲线上的单个点:
灵敏度= TP / TP + FN
1 - Specificy = TN / TN + FP
答案 1 :(得分:0)
我不明白你为什么要模拟一个新变量。你基本上要求从一个点绘制曲线,这是不可能的。相反,您应该只使用训练中的因变量或用于训练模型的测试数据。这将允许您找到您认为最佳的截止点。
pROC软件包允许我们轻松绘制ROC曲线。 假设我们有一个名为test的数据框和一个名为mymodel的模型,我们可以使用这样的东西:
library('pROC')
plot(roc(test$y, predict(mymodel, test, type = "prob"))