考虑我有一个像A
的分类及其分类的结果给了我如下表:如何使用混淆矩阵的值绘制ROC曲线?
TP TN FP FN
A 225 100 175 100
TP是真阳性
TN是真阴性
FP是假模型正
FN是假阴性
如何我ca n绘制ROC的曲线曲线?
我知道,我可以定义一个变量,并尝试基于A预测它,然后创建一个完全模拟上述值的数据帧,最后,我可以使用this代码。但我认为应该有一个更简单的方法?
考虑我有一个像A
的分类及其分类的结果给了我如下表:如何使用混淆矩阵的值绘制ROC曲线?
TP TN FP FN
A 225 100 175 100
TP是真阳性
TN是真阴性
FP是假模型正
FN是假阴性
如何我ca n绘制ROC的曲线曲线?
我知道,我可以定义一个变量,并尝试基于A预测它,然后创建一个完全模拟上述值的数据帧,最后,我可以使用this代码。但我认为应该有一个更简单的方法?
这是不可能的,因为您对分类器的某个(未知)阈值只有一个混淆矩阵。 ROC曲线包含有关所有可能阈值的信息。
混淆矩阵对应于你的ROC曲线的单点:
灵敏度= TP/TP + FN
1 - Specificy = TN/TN + FP
您对此有何看法? https://www.researchgate.net/post/How_can_I_draw_a_ROC_curve_having_TP_Rate_and_FP_Rate_Values – user5363938
您应该针对不同的阈值建立这样的表格,获得不同的点以及ROC曲线的形状。 – R18
@ user5363938在链接的讨论中,我们给出了每个观察的分数和真实值。你只在你的问题中提供了一个混淆矩阵。 – AlexR
我不明白你为什么'd模拟一个新的变量。你基本上要求从单一点绘制曲线,这是不可能的。相反,您应该在训练或测试数据中使用因变量来训练模型。这将允许您找到您认为最佳的截止点。
pROC软件包允许我们轻松绘制ROC曲线。 假设我们有一个数据帧名为测试和模型命名为MyModel,我们可以使用这样的事情:
library('pROC')
plot(roc(test$y, predict(mymodel, test, type = "prob"))
请注意,ROC需要预测的_probability_而不是预测的_class_。 – AlexR
ROC曲线绘制的概率,而不是“阈限”的预测。 尝试从模型中获取原始输出。 – JanLauGe