- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在评估基于隐式反馈的推荐系统。我对排名任务的评估指标有点困惑。具体来说,我希望通过精确度和召回率来进行评估。
Precision@k has the advantage of not requiring any estimate of the size of the set of relevant documents but the disadvantages that it is the least stable of the commonly used evaluation measures and that it does not average well, since the total number of relevant documents for a query has a strong influence on precision at k
我自己注意到它往往非常不稳定,因此,我想对多个评估日志的结果进行平均。
我想知道;假设我运行一个返回以下数组的评估函数:
Numpy array containing precision@k scores for each user.
现在我有了一个包含数据集中所有 precision@3 分数的数组。
如果我取这个数组的平均值,并平均 20 个不同的分数:这是否等于 Mean Average Precision@K 或 MAP@K 还是我理解这个有点太字面意思了?
我正在写一篇带有评估部分的论文,因此定义的准确性对我来说非常重要。
最佳答案
涉及两个平均值,这使得这些概念在某种程度上变得模糊,但它们非常简单 - 至少在 resys 上下文中 - 让我澄清一下:
How many relevant items are present in the top-k recommendations of your system
例如,要计算 P@3:获取给定用户的前 3 个推荐,并检查其中有多少是好的推荐。该数字除以 3 得出 P@3
The mean of P@i for i=1, ..., K.
例如,要计算 AP@3:将 P@1、P@2 和 P@3 相加,然后将该值除以 3
AP@K 通常是针对一个用户计算的。
The mean of the AP@K for all the users.
例如,要计算 MAP@3:将所有用户的 AP@3 相加,然后将该值除以用户数量
如果你是程序员,可以查看this code ,它是 Kaggle CTO 维护的库 ml_metrics
的 apk
和 mapk
函数的实现。
希望对您有帮助!
关于machine-learning - 了解 Precision@K、AP@K、MAP@K,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55748792/
我想打印精度为 4 的 float 。我使用 numpy , jupyter notebook我试过: %precision %.4g %precision 2 np.set_printoptions
我不知道如何解决这个问题,我知道浮点数的显式、隐式和 IEEE-754 规范化表示,但如何将其分解为小问题。请帮我想象一下。 最佳答案 让我们假设 IEEE-754 单精度浮点数。在这样一个浮点数中,
我有一个从 Azure Log Analytics 查询返回的值(以字节表示): 我想将其转换为兆字节并使其更易于阅读。在本例中为“4.19 MB”。 当我尝试将字节值转换为兆字节时,我似乎无法让 K
我最近收到的一项家庭作业要求我们采用在计算机中执行时可能会造成精度损失的表达式,并对其进行更改以避免这种损失。 不幸的是,执行此操作的指示尚未非常明确。通过观察各种正在执行的示例,我知道有一些方法可以
这更多的是一个数值分析问题,而不是编程问题,但我想你们中的一些人能够回答它。 在两个 float 相加中,是否有精度损失?为什么? float 和整数相加时,是否有精度损失?为什么? 谢谢。 最佳答案
所以我知道浮点精度(以及 1.1 之类的东西如何不能用二进制精确表示)等等,但我想知道:那么,与数学相关的库如何实现无限精度?换句话说,例如,您将如何以二进制形式准确地表示 1.1?只是一个简短的描述
阅读本文 http://en.wikibooks.org/wiki/Ada_Programming/Types/delta 让我想知道 delta 的极限值是多少是。 例如 delta 127 ran
我有一个文档数据库,我可以在其中执行搜索。对于每一次搜索,都有 n 个肯定。现在,如果我通过 precision@k 和 recall@k 来评估搜索的性能,那么对于后者来说一切都很好: recall
我注意到在 Modelica(使用 Wolfram System Modeler 4.3)中集成延迟固定时间量的脉冲输入的数值问题: model PulseTest "Test FixedDelay
我看过很多关于系统时钟的讨论,据说例如标准 PC 时钟,例如Windows 的精确度仅为+/-10 毫秒,而实时系统时钟的精确度为亚毫秒级。但这些说法意味着什么?这种时序变化的严重程度完全取决于测量时
我一直在阅读一些内容,但我很难理解如何解释“数字 x”。即: type something is digits 6 我知道它的精度是 6 位数字,但我想让我困惑的是这是什么意思。 1) Y.XXXXX
我的 Elasticsearch 映射(我使用的是 ES 2.1)中有一个 date 类型的字段(输入格式 epoch_second)。我知道我可以在该字段上进行排序 { "sort": [
我在 C++ 中使用 CPLEX 来解决集线器位置问题,即 MIP,并且我最近发现了一组非常精确的输入,CPLEX 认为这些输入是不可行的(即 CPXMIP_INFEASIBLE),即使该问题确实可行
简单地说,魔术函数 %precision 不考虑简单变量输出的浮点精度。 #Configure matplotlib to run on the browser %matplotlib noteboo
我正在尝试使用 sass + compass 来制作流体网格,并且在计算它们时我需要我的 % 至少有 8 位数字,但现在 sass + compass 正在将我的小数四舍五入为 3 位数字。我发现如果
希望如此,我可以第一次发帖,告诉我我想问的问题。 我有cpp代码,可记录从fpga向下到纳秒级的时间戳。它将此值写入CSV。在同一个csv中,我正在计算连续时间戳之间的差异。 当我将其导出到pytho
我用JAVA编写了以下方法: public static float surface(float r) { return(4*Math.PI*Math.pow(r,2));
我试图找出为什么我的 Java 程序中会出现这种精度丢失错误。 这是错误: error: possible loss of precision int digit = num/Mat
关于 java-7 功能“精确重新抛出”和 final Exception ex 有很多问题,我找不到我的问题的明确答案。 “精确重新抛出”和final Exception之间有什么关系? publi
SciPy interpolation有 3 种支持的方法: Supported are “linear” and “nearest”, and “splinef2d”. “splinef2d” is
我是一名优秀的程序员,十分优秀!