gpt4 book ai didi

R 获取 AUC 并同时绘制多条 ROC 曲线

转载 作者:行者123 更新时间:2023-12-04 23:17:11 26 4
gpt4 key购买 nike

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

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

方法二
我现在可以一起绘制多条 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

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

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

最佳答案

您可以使用 pROC 执行此操作包裹。使用 print.aucplot 的调用中的参数:

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)

关于R 获取 AUC 并同时绘制多条 ROC 曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37244383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com