问题标签 [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 投票
1 回答
146 浏览

machine-learning - Google Auto ML , 平均精度

我们使用 auto ml 进行多标签文本分类。他们使用平均精度作为度量(精度召回曲线下的面积),但他们没有提到它是微观还是宏观或样本。有人知道他们如何计算谷歌汽车毫升中的平均精度吗?

0 投票
0 回答
1456 浏览

keras - 平均平均精度 (mAP) 度量 keras

我正在训练一个 keras 模型,该模型将项目嵌入成对并输出二进制分类(接近 word2vec)。我需要在每个 epoch 之后为推荐系统找到模型的 mAP,以便能够进行比较。除了每次使用新嵌入从头开始计算之外,我真的找不到其他方法。如果有人有办法,我将不胜感激。

0 投票
1 回答
5713 浏览

python - MAP@k 计算

在k处计算的平均精度(对于答案中的前 k 个元素),根据wiki在 kaggle 的 ml 指标,以及这个答案:关于 (Mean) Average Precision 的混淆应该计算为 k 处的平均精度的平均值,其中平均值k 处的精度计算为:

在此处输入图像描述

其中: P(i) 是列表中截止 i 处的精度;rel(i) 是一个指示函数,如果排名 i 的项目是相关文档,则等于 1,否则为零。

分隔符min(k, number of relevant documents)的含义是答案中相关条目的最大可能数量。

这种理解正确吗?

MAP@k 是否总是小于为所有排名列表计算的 MAP?

我担心的是,这不是 MAP@k 在许多作品中的计算方式。

通常,分隔符不是,而是top-kmin(k, number of relevant documents)中相关文档的数量。这种方法将给出更高的 MAP@k 值。


HashNet:通过持续进行深度学习散列”(ICCV 2017)

代码: https ://github.com/thuml/HashNet/blob/master/pytorch/src/test.py#L42-L51

whererelevant_num不是min(k, number of relevant documents),而是结果中相关文档的数量,与相关文档的总数或k不同。

我读错代码了吗?


高效图像检索 CVPR 2017 的深度视觉语义量化

代码:https ://github.com/caoyue10/cvpr17-dvsq/blob/master/util.py#L155-L178

其中 除数 是rel,计算为np.sum(imatch), 其中imatch是一个二进制向量,指示条目是否相关。问题是它只需要 first Rimatch = np.sum(database_labels[idx[0: self.R], :] == label, 1) > 0。所以np.sum(imatch)会在返回的 size 列表中给出相关条目的数量R,但不会min(R, number of relevant entries)。请注意,R论文中使用的值小于数据库中的条目数。


用于快速图像检索的二进制哈希码的深度学习 (CVPR 2015)

代码:https ://github.com/kevinlin311tw/caffe-cvprw15/blob/master/analysis/precision.m#L30-L55

这里的分隔符是sum(buffer_yes)返回的大小为k的列表中的相关文档的数量的列表中的相关文档的数量,而不是min(k, number of relevant documents)


“语义保持深度散列的监督学习”(TPAMI 2017)

代码:https ://github.com/kevinlin311tw/Caffe-DeepBinaryCode/blob/master/analysis/precision.m

代码与上一篇论文中的相同。


使用无监督深度神经网络学习紧凑二进制描述符 (CVPR 2016)

相同的代码:https ://github.com/kevinlin311tw/cvpr16-deepbit/blob/master/analysis/precision.m#L32-L55



我错过了什么吗?上述论文中的代码是否正确?为什么它与https://github.com/benhamner/Metrics/blob/master/Python/ml_metrics/average_precision.py#L25-L39不一致?


更新

我发现了这个已关闭的问题,指的是同样的问题:https ://github.com/thuml/HashNet/issues/2

索赔以下索赔正确吗?

AP是一个排名指标。如果排名列表中的前 2 个检索是相关的(并且只有前 2 个),则 AP 为 100%。你说的是召回率,在这种情况下确实是 0.2%。

据我了解,如果我们将 AP 视为 PR 曲线下的面积,则上述说法是不正确的。


PS我怀疑这是否应该去Cross Validated或StackOverflow。如果您认为最好将其放置在交叉验证中,我不介意。我的理由是,这不是一个理论问题,而是参考实际代码的实现问题。

0 投票
1 回答
41 浏览

excel - ADODB.Recordset 中小时 >24 时 AVG() 时间的错误结果

有人可以帮助我理解为什么,当我运行此代码时,每次在数据范围内我们有 Kpi1-2 > 24H 的记录时,我都会检索到错误的结果(示例表是 25K 记录的提取)。

在此处输入图像描述

更新:我测试这段代码:

只有第二个是正确的。为什么?!?!哇追加?!?

0 投票
1 回答
3510 浏览

python - 如何解释:标签排名平均精度分数

我是数组编程的新手,发现很难解释 sklearn.metrics label_ranking_average_precision_score 函数。需要您的帮助来理解它的计算方式,并感谢任何学习 Numpy 数组编程的技巧。

一般来说,我知道精度是
((True Positive) / (True Positive + False Positive))

我之所以问这个问题是因为我偶然发现了 Kaggle Competition for Audio Tagging 并看到了这篇文章,说当响应中有多个正确标签时,他们正在使用 LWRAP 函数来计算分数。我开始阅读以了解该分数是如何计算的,但发现很难解释。我的两个困难是
1)从文档中解释 Math 函数,我不确定如何在分数计算中使用排名
2)从代码中解释 Numpy 数组操作
我正在阅读的函数来自Google Collab 文档,然后我尝试阅读文档在sklearn但无法正确理解。

一个样本计算的代码是

0 投票
0 回答
2420 浏览

mask - 来自 Mask R-CNN utils.py 的 mAP 和来自 (MS)COCO 的 mAP 有什么区别?

我用自己的数据训练了我的 Mask R-CNN 网络,我将其转换为 COCO Style 用于我的论文,现在我想评估我的结果。我找到了两种方法来做到这一点。一种方法是来自 COCO 本身的评估。Mask R-CNN 本身在他们的 coco.py 文件中展示了如何使用 COCO Metric 进行评估: https ://github.com/matterport/Mask_RCNN/blob/master/samples/coco/coco.py

我基本上使用第evaluate_coco(...)342 行中的函数。结果,我从 COCO 指标中获得了不同指标的平均精度和平均召回率的结果,请参见下图。对于参数 eval_type 我使用eval_type="segm".

对我来说,mAP 很有趣。我知道 mAP50 使用 0.5 作为 IuO(联合交叉点),它们的标准 mAP 是从 IuO = 0.5 到 0.95,步长为 0.05。

第二种方法来自 Mask R-CNN 本身在他们的 utils.py 中: https ://github.com/matterport/Mask_RCNN/blob/master/mrcnn/utils.py

函数的名称compute_ap(...)在第 715 行,上面写着 IoU 是 0.5。该函数返回一个 mAP 值。

这就提出了compute_ap()评估什么类型的问题。使用 COCO,您可以在“bbox”和“segm”之间进行选择。

我还想知道compute_ap(...)函数的 mAP 值和 COCO 的 mAP50 之间的区别,因为使用相同的数据我得到不同的结果。不幸的是我现在不能上传更好的图片,因为我只能在周一到周五去我的大学,周五我很匆忙,没有检查就拍照,但是所有 AP 的平均值compute_ap()是 0.91,我我很确定 COCO 的 AP50 是 0.81。

有人知道区别还是没有区别? 在顶部,来自 compute_ap() 的所有 AP 的 mAP 为 0.9108,来自 COCO 的 AP50 为 0.810 这是另一个 COCO Metric 结果

是不是因为maxDets=100这个参数?: 了解COCO评价“最大检测数” 我的图片只有4个类别,每张图片最多4个实例。

还是计算mAP的方式不同?

编辑:现在我对“Segm”类型和“BBox”类型的整个 COCO 度量有一个更好的图像,并将它与来自的结果进行compute_ap()比较,即“mAP:0,41416 ...”顺便说一句,如果有COCO 结果中的“-1”,这是否意味着该类型没有?

COCO Metric 和 compute_ap() 结果比较

0 投票
0 回答
102 浏览

excel - VBA(Excel)平均更精确,工作表函数或逐步

我写了一个宏,作为一个小任务,它还计算了大约 39000 个不同值的平均值。我注意到使用 WorksheetFunction.Average 并“逐步”计算平均值会产生不同的结果,但仅在小数点后的第 15 位。通过“逐步”计算,我的意思是将每个值加到一个 total_sum 变量中,计算另一个变量中值的数量,然后将前者除以后者。小数点后的第 15 位可能被认为可以忽略不计,但我仍然觉得它令人不安。这两个值不应该完全相同吗?它们是当我使用较少的值并且宏可能应用于远远超过 39000 (100k+) 的值时,我担心错误可能会增加。

所以我的问题是:什么可能导致差异,更重要的是哪种方法更精确?

我尝试将“逐步”计算中的所有变量声明为 Variant,以避免在任何这些步骤中使用错误的数据类型。

非常感谢您的帮助!

0 投票
1 回答
526 浏览

python - 使用随机森林时sklearn平均精度分数的参数

我一直在尝试摆弄 sklearn 指标,尤其是 average_precision_score。但是,我只能在 sklearn 文档中找到一个计算 average_precision_score 的示例,并且也可以使用 SVM。下面是代码片段以及作为参考的文档链接:

文档 - Precision Recall Sklearn 和代码参考

现在我的问题是在上面的例子中,y_score是来自 decision_function 的输出(它预测样本的置信度分数),而y_test是类。考虑到 RandomForests 没有与 SVM 一样的 decision_function 方法,如何计算y_score

我已经尝试并看到人们使用 predict(self, X)(Predict class for X) 和 predict_proba(self, X)(Predict class probabilities for X) 方法来计算 average_precision_score。使用这两种方法,我的结果非常不同。使用 predict(self, X) 我得到0.74作为 average_precision_score 并使用 predict_proba 我得到0.94。我的 y_test 是具有值 (1, 0) 的类标签。我有点困惑什么是正确的。何时使用 predict 与 predict_proba,以及为什么它们会产生如此不同的平均精度分数。任何帮助将不胜感激。

0 投票
1 回答
930 浏览

machine-learning - 如何计算整个数据集的 mAP(平均精度)?

我是计算机视觉的新手,我有一个简单的问题,在网上找不到任何答案。我正在使用 Matterport 的 mask rcnn 实现对一些图像执行二进制分类,并且我有一些额外的代码行来计算每个图像的 mAP。现在我想知道,如果我可以将每个图像计算的 mAP 相加,然后除以该数字以获得整个数据集的 mAP,如果不能,我该如何计算整体 mAP?(最好使用 mask rcnn 模型的实用程序)

0 投票
1 回答
93 浏览

tensorflow - 为什么使用tensorflow做物体检测时Average Precision和Average Recall = -1?

在此处输入图像描述

我正在使用 Google Colab、Tensorflow 版本 1、SSD 移动网络 v2 CoCo 模型来训练自定义数据集。但是在图像上方的自定义数据集上评估 AP 和 AR = -1。我不明白为什么会出现结果?

你能回答这个问题吗?谢谢你。