了解Precision @ K,AP @ K,MAP @ K

时间:2019-04-18 15:01:46

标签: machine-learning recommender-systems

我目前正在基于隐式反馈评估推荐系统。对于任务排名的评估指标,我有些困惑。具体来说,我希望同时进行精确度和召回率评估。

  

Precision @ k的优点是不需要对   相关文件集的大小,但缺点是   最常用的评估方法中最不稳定的   由于相关文件总数太少,平均效果不佳   一个查询对k精度的影响很大

我已经发现我自己经常波动很大,因此,我想对多个评估日志的结果取平均值。

我在想;说如果我运行一个返回以下数组的评估函数:

  

包含每个用户的Precision @ k分数的数字数组。

现在,我为数据集中的所有 precision @ 3 分数提供了一个数组。

如果我用这个数组的平均值和平均水平说20个不同的分数:这是否等于 Mean Average Precision @ K MAP @ K 还是我从字面上太了解了这一点?

我正在写一个带有评估部分的论文,因此定义的准确性对我来说很重要。

1 个答案:

答案 0 :(得分:0)

涉及两个平均数,这些平均数使这些概念变得晦涩难懂,但它们相当简单-至少在recsys上下文中-让我澄清一下:

P @ K

  

系统的前k个建议中有多少相关项


例如,要计算P @ 3:采用给定用户的前3条建议,并检查其中有多少是好建议。该数字除以3即可得到P @ 3

AP @ K

  

i = 1,...,K P @ i 的平均值。


例如,要计算AP @ 3:求和P @ 1,P @ 2和P @ 3,然后将该值除以3

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

MAP @ K

  

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


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

如果您是程序员,则可以检查this code,这是apk的功能mapkml_metrics的实现,该功能由CTO的CTO维护。 Kaggle。

希望它有所帮助!