繁体   English   中英

R得到AUC并同时绘制多条ROC曲线

[英]R get AUC and plot multiple ROC curves together at the same time

我已经尝试了两种方法来绘制ROC曲线并获得每条ROC曲线的AUC。

方法1 - 第一种方法很简单, 但我不知道如何将多条ROC曲线绘制在一起 我只是使用roc.curve(hacide.test$cls, pred_rose[,2]) ,输出将显示ROC曲线并给出AUC。

方法2我现在可以将多条ROC曲线一起绘制,但不能同时获得AUC。 这是我将多条ROC曲线绘制在一起的方式:

library(ROCR)
pd1 <- prediction(pred_rose[,2], hacide.test$cls)
pf1 <- performance(pd1, "tpr","fpr")

pd2 <- prediction(pred_both[,2], hacide.test$cls)
pf2 <- performance(pd2, "tpr","fpr")

plot(pf1, colorize = TRUE)
plot(pf2, add = TRUE, colorize = TRUE)

这是我获得AUC的方式:

pf <- performance(pd3, "auc")
pf     # y.values is the AUC

如您所见,当我使用第二种方法时,用于获取ROC曲线和AUC的performance()方法是不同的。 这里pf1,pf2的输出没有AUC值。

方法1更简单,但是您知道如何使用方法1将ROC曲线绘制在一起并保持每个AUC值吗?

您可以使用pROC包执行此pROC 使用print.auc在调用参数plot

library(pROC)
roc_rose <- plot(roc(hacide.test$cls, pred_rose[,2]), print.auc = TRUE, col = "blue")

对于第二条ROC曲线,您需要更改AUC的y位置,并使用在同一图上add两条曲线的图:

roc_rose <- plot(roc(hacide.test$cls, pred_both[,2]), print.auc = TRUE, 
                 col = "green", print.auc.y = .4, add = TRUE)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM