使用ROCR软件包计算精确率召回曲线的AUC值

5
如何使用ROCR包获取精度召回曲线的AUC值?
library(ROCR)
data(ROCR.simple)
pred <- prediction( ROCR.simple$predictions, ROCR.simple$labels)
perf <- performance(pred,"tpr","fpr")
plot(perf)
## precision/recall curve (x-axis: recall, y-axis: precision)
perf1 <- performance(pred, "prec", "rec")
plot(perf1)
3个回答

2
您可以先获取精准度(precision)和召回率(recall)的值。
x <- perf1@x.values[[1]] # Recall values
y <- perf1@y.values[[1]] # Precision values

然后,使用计算曲线下面积中的任何一种方法计算曲线下面积。


1
看起来ROCR有两个度量标准:auc和aucpr。以下内容适用于我:
对于ROC:
perfauc <- performance(pred, "auc")

针对公共关系

perf1auc <- performance(pred, "aucpr")

-1

ROCR可以直接计算AUC:

perf <- performance(pred, "auc")

获取AUC

perf@y.values[[1]]

@user-1,如何获取精确率召回曲线的AUC值? - Newbie
那不是你最初的问题吗? - USER_1
1
@user-1:在上面的示例代码中,perf 是我的 ROC 图,perf1 是我的 Precision-Recall 图。它们都使用相同的 pred 对象来计算曲线。我认为你给出的答案是 ROC 图的 AUC 而不是 Precision-Recall 图的。请问你能指导我如何获得它吗? - Newbie
这是如何操作的(您需要集成该函数):`f <- approxfun(data.frame(perf1@x.values , perf1@y.values) )auc <- integrate(f, 0, 1)$value` - USER_1
另外,来自不同的包:{PerfMeas}中的AUPRC()函数。 - USER_1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接