首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >理解精度@K,AP@K,MAP@K

理解精度@K,AP@K,MAP@K
EN

Stack Overflow用户
提问于 2019-04-18 07:01:46
回答 1查看 21.3K关注 0票数 18

我目前正在评估一个基于隐式反馈的推荐系统。对于对任务进行排序的评估指标,我有点困惑。具体来说,我希望通过精确性和回忆性来进行评估。

精度@k的优点是不需要对相关文档集的大小进行任何估计,但缺点是它是常用的评估方法中最不稳定的,而且它并不平均,因为查询的相关文档总数对k的精度有很大的影响。

我已经注意到,它往往是非常不稳定的,因此,我想将多个评估日志的结果平均化。

我想知道,如果我运行一个返回以下数组的评估函数:

包含每个用户精确@k分数的Numpy数组。

现在,我有了一个数组,用于我的数据集中的所有精度@3分数。

如果我取这个数组的平均值,横穿20个不同的分数:这是否等同于平均精度@K或MAP@K,或者我是否理解得有点过了?

我正在写一篇带有评价部分的论文,所以定义的准确性对我来说是非常重要的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-28 12:24:05

涉及到两个平均值,它们使概念变得模糊,但在recsys上下文中它们是非常简单的-at --让我澄清它们:

P@K

在您的系统的顶部-k建议中有多少相关项存在?

例如,要计算P@3:为给定的用户取前3条建议,并检查其中有多少条是好的。这个数除以3,得到P@3。

AP@K

P@i对i=1,.,K.

例如,要计算AP@3:和P@1、P@2和P@3,并将该值除以3

AP@K通常是为一个用户计算的。

MAP@K

所有用户AP@K的平均值。

例如,要为所有用户计算MAP@3: sum AP@3,并将该值除以用户数

如果您是程序员,可以检查这段代码,这是apkml_metricsmapk函数的实现,这是一个由Kaggle的CTO负责的库。

希望能帮上忙!

票数 38
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55748792

复制
相关文章
双精度,单精度和半精度
浮点数是计算机上最常用的数据类型之一,有些语言甚至数值只有浮点型(Perl,Lua同学别跑,说的就是你)。
用户1148523
2019/05/27
6K0
k8s 理解Service工作原理
简单来说K8s提供了service对象来访问pod。我们在《k8s网络模型与集群通信》中也说过k8s集群中的每一个Pod(最小调度单位)都有自己的IP地址,都有IP了访问起来还不简单?
你大哥
2022/03/14
1.5K0
k8s 理解Service工作原理
使用 Python 和 TFIDF 从文本中提取关键词
关键词提取是从简明概括长文本内容的文档中,自动提取一组代表性短语。关键词是一个简短的短语(通常是一到三个单词),高度概括了文档的关键思想并反映一个文档的内容,清晰反映讨论的主题并提供其内容的摘要。
数据STUDIO
2022/05/24
4.5K0
使用 Python 和 TFIDF 从文本中提取关键词
课程笔记4--图像K空间理解
K空间的数据分布实际上是图像空间中数据的二维傅立叶变换结果。 K空间中的数据点和图像空间中的数据点并不是一一对应的。一个K空间中的数据点对应了图像空间中所有数据点的一部分信息。事实上,K空间中的数据正是图像空间中的数据作二维傅立叶变换的结果(图1),也就是说,我们的“大脑图像”可以被看作是由一系列频率、相位、方向各异的二维正弦波叠加而成的,而K空间的数据正表示了图像的正弦波组成。因此,为了理解如何从K空间中的数据变换得到图像空间中的数据,我们必须首先理解傅立叶变换。
锦小年
2019/05/26
2.1K0
linux k8s requests limits理解
k8s requests limits理解 节点容量查看 kubectl describe node nodename cpu requests: requests是设置资源的一个最小保证,这里nod
葫芦
2019/08/30
4.4K0
linux k8s requests limits理解
快速理解K8S基础概念
导语:K8S作为目前容器编排工具的主流平台,其基本逻辑概念在学习时有些理解上的困难,笔者通过与一个电子商城应用的通用概念进行类比,希望可以快速地介绍清楚Namespace、pod、container、servicer、volume等基础概念,希望对大家有所帮助。
爆炸的瓶子
2022/10/11
5500
快速理解K8S基础概念
与你生活密切相关的排序算法的评估指标
读完分类与回归算法的评估指标之后,你已经知道了机器学习中分类与回归算法的评估指标。在这篇给大家介绍一些机器学习中排序算法相关的评估指标。
abs_zero
2018/12/05
9870
精度,Precision
柏拉图认为,尽管世间万物是不完美的,但存在一种永恒不变的形式,这个形式是完美的,而生命的意义就是让这个世界尽可能的接近这个完美的形式。 怎么理解这句话,和我们今天讲的精度有什么关系。我们先举一个例子,
Peter Lu
2018/06/20
1.4K0
【机器学习】快速有效理解 K-Means 算法
无监督学习指的是数据没有标签,也就是说我们只有数据的特征,但并不知道这些数据都是什么,无监督学习算法或者是模型需要从这样的数据中学习给数据按照某种规律进行分类的能力,或者是找出不同特征之间的关联性等等.
Frank909
2019/01/14
9460
ACM算法竞赛——高精度乘低精度(模板)
// C = A * b, A >= 0, b >= 0 vector<int> mul(vector<int> &A, int b) { vector<int> C; int t = 0; for (int i = 0; i < A.size() || t; i ++ ) { if (i < A.size()) t += A[i] * b; C.push_back(t % 10); t /= 10; } w
战士小小白
2022/05/14
4820
ACM算法竞赛——高精度乘低精度(模板)
高精度运算
在写Java代码时候,我们其实很少去考虑高精度运算,即使遇到无法避免高精度的计算问题也不会太烦恼,因为有大整数类BigInteger以及BigDecimal工具使用。
每天学Java
2020/06/01
1.3K0
ACM算法竞赛——高精度除以低精度(模板)
// A / b = C ... r, A >= 0, b > 0 vector<int> div(vector<int> &A, int b, int &r) { vector<int> C; r = 0; for (int i = A.size() - 1; i >= 0; i -- ) { r = r * 10 + A[i]; C.push_back(r / b); r %= b; } reverse(C.
战士小小白
2022/05/14
4770
ACM算法竞赛——高精度除以低精度(模板)
Java精度问题
Java中的简单浮点数类型float和double不能够进行运算。 这个问题相当严重,如果你有9.999999999999元,你的计算机是不会认为你可以购买10元的商品的。 在有的编程语言中提供了专门的货币类型来处理这种情况,但是Java没有。现在让我们看看如何解决这个问题。
用户1205080
2019/03/04
1.1K0
高精度模板
以下输出需从高位开始 高精度加法 vi add(vi&A, vi &B){ if(A.size()<B.size()) return add(B,A); vi C; int t=0; for(int i=0;i<A.size();i++){ t+=A[i]; if(i<B.size()) t+=B[i]; C.push_back(t%10); t/=10; } if(t) C.push_back(
dejavu1zz
2020/10/23
7590
java怎样解决除法精度_java 除法 精度问题
public static void main(String[] args){
全栈程序员站长
2022/09/06
2K0
高精度运算
Just go ahead,never look back. 加法 #include<iostream> #include<string> #include<algorithm> #include<vector> #include<cstdlib> using namespace std; vector<int> A; vector<int> B; vector<int> add(vector<int> &A,vector<int> &B) { if(A.size()<B.size())
AngelNH
2020/04/16
8930
精度丢失问题
背景 BFF Client 使用的 npm 包 request-promise-native 请求微服务接口返回 ID 精度丢失 1713166949059674112 => 1713166949059674000 为什么会丢失? 存储二进制时小数点的偏移量最大为52位,计算机存储的为二进制,而能存储的二进制为62位,超出就会有舍入操作,因此 JS 中能精准表示的最大整数是 Math.pow(2, 53),十进制即9007199254740992大于 9007199254740992 的可能会丢失精度 参考
编程三昧
2022/02/03
1.9K0
精度丢失问题
精度(precision)控制
参考自: https://blog.csdn.net/yanglingwell/article/details/49507463
Cloud-Cloudys
2020/07/07
6270
oracle字段精度修改,oracle number类型增加精度
查找原因,发现是因为有些表number类型没有设精度导致的,解决方法如下,修改表结构加上精度
全栈程序员站长
2022/09/15
1.8K0
oracle字段精度修改,oracle number类型增加精度
点击加载更多

相似问题

MAP@k计算

12

顶k精度

12

推荐系统-召回@K和精度@K

12

理解浮点精度

40

评估K-均值精度

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文