如何使用混淆矩阵的值绘制ROC曲线?

时间:2017-04-04 08:04:02

标签: r

考虑我有一个像A这样的分类器,其分类结果给出了下表:

    TP  TN  FP  FN
A   225 100 175 100

TP为正值

TN是真正的否定

FP是假的Postive

FN是假阴性

我如何画出ROC的情节曲线?

我知道,我可以定义一个变量,并尝试基于A预测它,然后创建一个精确模拟上述值的数据帧,最后,我可以使用this代码。但我认为应该有一个更简单的方法吗?

2 个答案:

答案 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"))