R中PRROC包的Precision-Recall曲线计算

Posted

技术标签:

【中文标题】R中PRROC包的Precision-Recall曲线计算【英文标题】:Precision-Recall Curve computation by PRROC package in R 【发布时间】:2017-01-23 08:17:26 【问题描述】:

我的问题与this 问题有关。我对计算精确召回曲线(PRC)和PRC下的面积感兴趣。我找到了一个不错的 R 包 PRROC 来完成这两项任务。根据函数 pr.curve 的package 描述(第 5 页),您必须提供 2 个参数。 1) 属于正类的数据点的分类分数only 2) 属于负类的数据点的分类分数only(参见手册第7页)。他们提供的例子是:

# create artificial scores as random numbers
x <- rnorm( 1000 );
y <- rnorm( 1000, -1 );
# compute PR curve
pr <- pr.curve( x, y, curve = TRUE );

我的问题是我在正类中有 14000 个数据点,在负类中有 2560595 个数据点,对于这样的数据,它已经是 1 天了,但我仍然没有得到结果。为简单起见,您可以尝试扩展已经给出的示例。

# create artificial scores as random numbers
x <- rnorm( 14000 );
y <- rnorm( 2560595, -1 );
# compute PR curve
pr <- pr.curve( x, y, curve = TRUE );

【问题讨论】:

你能澄清你的问题吗? @jonno-bourne 问题是针对我的数据集 PRROC 包的 pr.curve 函数不起作用。如果您增加数据点,即使他们提供的示例也不起作用。 【参考方案1】:

您可能想尝试 AUPRC() 来自 PerfMeas

已编辑

这个precrec 包似乎更好。它与 ggplot2 兼容并用 C++ 实现。基准测试结果请查看this paper

【讨论】:

虽然这在理论上可以回答问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。有关如何编写更好“基于链接”的答案的说明,请参阅here。谢谢!

以上是关于R中PRROC包的Precision-Recall曲线计算的主要内容,如果未能解决你的问题,请参考以下文章

R语言plotly可视化:使用plotly可视化二分类模型的PR曲线计算并在曲线中添加AUC值(basic binary Precision-Recall Curves and auc score)

在 scikit-learn 中使用交叉验证时绘制 Precision-Recall 曲线

Precision-Recall Curve

ROC 和 Precision-Recall 中的零分母?

Recall值与Precision-Recall曲线的关系

SGD 分类器 Precision-Recall 曲线