Ale*_*urn 10 machine-learning recommender-systems
我目前正在评估基于隐式反馈的推荐系统。我对排名任务的评估指标有点困惑。具体来说,我希望通过精度和召回率进行评估。
Precision@k 的优点是不需要对相关文档集的大小进行任何估计,但缺点是它是常用评估措施中最不稳定的,并且平均不好,因为相关文档的总数因为查询对 k 处的精度有很大影响
我自己注意到它往往非常不稳定,因此,我想平均多个评估日志的结果。
我想知道; 假设我运行一个返回以下数组的评估函数:
包含每个用户的 precision@k 分数的 Numpy 数组。
现在我有一个数组,用于存储数据集中所有的precision@3分数。
如果我取这个数组的平均值并平均说 20 个不同的分数:这相当于Mean Average Precision@K或MAP@K还是我从字面上理解这一点?
我正在写一篇带有评估部分的论文,因此定义的准确性对我来说非常重要。
dat*_*sta 20
有两个平均值使这些概念有些模糊,但它们非常简单——至少在 recsys 上下文中——,让我澄清一下:
在您的系统的 top-k 推荐中存在多少相关项目
例如,要计算 P@3:取给定用户的前 3 个推荐并检查其中有多少是好的。该数字除以 3 得到 P@3
的平均2P @我为I = 1,...,K。
例如,要计算 AP@3:将P@1、P@2 和 P@3 相加并将该值除以 3
AP@K 通常是为一个用户计算的。
所有用户的 AP@K 平均值。
例如,要计算 MAP@3:将所有用户的 AP@3 相加,然后将该值除以用户数量
如果你是一个程序员,你可以检查这个代码,这是该功能的实现apk及mapk的ml_metrics,通过Kaggle的CTO编程和维持一个图书馆。
希望有帮助!
| 归档时间: |
|
| 查看次数: |
10029 次 |
| 最近记录: |