问题标签 [average-precision]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
855 浏览

r - N 处平均精度的更快 R 实现

优秀的Metrics包提供了计算平均精度的函数: apk.

问题是,它基于for循环,而且速度很慢:

我不知道如何向量化这个函数,但我想知道是否有更好的方法在 R 中实现它。

0 投票
2 回答
3747 浏览

r - R中的平均平均精度

我们如何计算 R 中的平均精度分数?有没有简单的方法?

我计算如下。我不知道这是否完全正确。。

0 投票
2 回答
766 浏览

scikit-learn - Scikit Learn:偏斜的平均精度报告

我正在使用 scikit-learn 执行二进制分类,但是标签在整个数据集中分布不均匀。对于我对预测少数类感兴趣的情况,我对metrics.average_precision_score. 当我运行实验并打印分类报告时,我看到总体精度方面表现良好,但这显然来自模型在预测多数类方面做得很好,如下所示:

然后将average precision其报告为0.9752. 这个平均精度分数显然是针对大多数班级报告的,这并不是我真正感兴趣的班级。是否有某种方法可以修改metrics.average_precision_score函数以报告与少数感兴趣类别相关的指标?任何见解将不胜感激 - 感谢您的阅读。

0 投票
2 回答
2704 浏览

python - 在 pandas 中具有重复索引的数据帧上应用滚动平均函数

我很难在以下包含重复索引的数据框中使用 pd.rolling_mean 函数:

我需要计算“金额”的 3 天平均值,例如,从20140101to的平均值20140103应该是(3+4+3+5+1)/5=3.2,从 20140104 到 20140106 的平均值应该是(5+6+2)/3=4.3

有人知道怎么做吗?先感谢您!

0 投票
3 回答
1074 浏览

r - 删除行中的 NA,如果 NA 位于 R 中,则移动右侧的单元格也是唯一值

好的,所以我在 R 中有一个这样的数据框

所以,这就是我要找的

我这样做是为了 MAP@k 指标,所以数字的顺序(左边的比下一个更重要)儿子保持顺序很重要。

这是我正在寻找的输出

谢谢您的帮助

0 投票
4 回答
778 浏览

c++ - 高精度计算平均值的最佳策略

我正在比较两种计算随机数平均值的算法。

  • 第一个算法将所有数字相加并除以最后的项目数
  • 第二种算法计算每次迭代的平均值,并在收到新数据时重用结果

我想这里没有什么革命性的东西,而且我不是数学家,所以我不能为这两种算法命名。

这是我的代码:

输出是:

差异肯定是由于double类型精度。

到底哪一个是好方法?哪一个给出了真正的数学平均值(或最接近......)?

0 投票
0 回答
1530 浏览

python - 平均精度@k 平均召回率@k

我有两组用户会话。每组包含两列:
- 在线商店中查看商品的
ID - 在线商店中购买商品的 ID

一组必须用于火车(顶级产品评级),第二组必须用于测试。

所有购买的物品的 id 都是不同的。

我需要做
1. 在测试集上计算查看和购买 id 的频率(一个 id 可以在查看的项目中出现多次)
2. 实现两种推荐算法:
- 按受欢迎程度对查看的 id 排序(查看的项目中出现的频率)
- 通过购买对查看的 id 进行排序(购买项目中出现的频率)
3. 使用此算法我需要计算AverageRecall@1、AveragePrecision@1、AverageRecall@5、AveragePrecision@5

重要
- 用户没有购买任何东西的会话,质量评估规则。
- 如果在训练集中没有找到该物品,则其受欢迎程度为0。
- 需要推荐不同的物品。并且它的数量应该不超过不同用户查看项目的数量。
- 推荐永远不会大于两个数字的最小值:查看项目的数量和召回率@k/精度@k中的k。

我使用 OrderedDict 执行的第一项任务(计算频率)。对于第二个任务,我使用函数:

但我不知道如何计算第三个任务(每个 k 的平均召回率等)以及如何处理 OrderedDict。

0 投票
2 回答
1948 浏览

mean - 关于(平均)平均精度的困惑

这个问题中,我询问了有关精确召回曲线的说明。

特别是,我问我们是否必须考虑固定数量的排名来绘制曲线,或者我们可以合理地选择自己。根据答案,第二个是正确的。

但是现在我对平均精度 (AP) 值有很大的疑问:AP 用于在数值上估计我们的算法在给定特定查询的情况下有多好。平均平均精度 (MAP) 是多个查询的平均精度。

我的疑问是:如果 AP 根据我们检索到的对象数量而变化,那么我们可以调整此参数以发挥我们的优势,以便我们显示可能的最佳 AP 值。例如,假设 pr 曲线在 10 个元素之前表现出色,然后非常糟糕,我们可以“欺骗”仅考虑前 10 个元素来计算 (M)AP 值。

我知道这听起来可能令人困惑,但我在任何地方都没有找到任何关于此的内容。

0 投票
1 回答
16502 浏览

python - 张量流中的平均精度(mAP)

我需要使用 Tensorflow 计算问题中描述的用于对象检测mAP

平均精度(AP)是用于排名集的典型性能度量。AveragePrecision 定义为范围 S 中每个真阳性、TP 之后的精度分数的平均值。给定范围 S = 7,以及排名列表(增益向量) G = [1,1,0,1,1,0 ,0,1,1,0,1,0,0,..] 其中 1/0 分别表示与相关/非相关项目相关的增益:

AP = (1/1 + 2/2 + 3/4 + 4/5) / 4 = 0.8875。

平均平均精度(mAP):一组查询的平均精度值的平均值。

我得到了 5个带有预测的One-Hot张量:

其中单个预测张量具有这种结构(例如 prediction_A):

然后我得到了正确的标签(单热)张量,具有相同的结构:

我想使用tensorflow计算mAP,因为我想总结一下,我该怎么做?

我找到了这个函数 ,但我不能使用它,因为我有一个多维向量。

我还编写了一个计算AP的 python 函数,但它不使用 Tensorflow

0 投票
1 回答
649 浏览

information-retrieval - IR 计算不同相关文档的平均精度以排名 K

召回率和精度示例

上图显示了文档检索设置中精度和召回率的标准示例。

要计算排名 1 的平均精度,您只需执行以下操作:

(1.0 + 0.67 + 0.75 + 0.8 + 0.83 + 0.6) / 6 = 0.78

上面的示例非常适合小型文档集合,但假设您有一个包含 100,000 个文档的搜索引擎,而一个查询可能包含 100 个相关文档。如果将 K 的长度保持在 10,将如何调整上述内容?

一个例子:

已确定 Ranking #1 的查询有 20 个相关文档,以上是否变为:

(1.0 + 0.67 + 0.75 + 0.8 + 0.83 + 0.6) / 20 = 0.23

还是您仍然除以 6,因为那是长度为 K 的等级内的相关文档的数量?