推荐系统的评价指标(1):准确率与召回率
推荐系统的评价指标是用来衡量推荐系统性能的重要工具,它们可以帮助我们了解推荐系统的效果,并指导系统的优化和改进。一些常用的推荐系统评价指标包括准确率、召回率、MAP、NDCG等。本文给出一个基本介绍,以及一些例子来说明:
基础指标
准确率(Precision)
● 准确率是指推荐列表中相关项目的比例,即推荐N项,有M项用户感举,则准确率为 M / N M/N M/N
召回率(Recall)
● 召回率是指推荐系统能够成功推荐出的用户感兴趣的M项目占所有用户感兴趣的项目总数K的比例,即
K
/
M
K/M
K/M。
一般情况下,对于推荐系统而言,准确率越高,召回率越低;反之亦然。下图展示了一个系统的准确率与召回率的关系。
实际应用中,为了综合评价上述两个重要指标,可以使用F1分数(F1 Score)
F1分数(F1 Score)
● F1分数是准确率和召回率的调和平均数,用于综合考虑准确率和召回率的平衡。
F 1 = 2 × P r e c i s i o n × R e c a l l P r e c i s i o n + R e c a l l F1=\frac{2×Precision×Recall}{Precision+Recall} F1=Precision+Recall2×Precision×Recall
因而,F1分数的范围在0到1之间,值越高表示模型的性能越好。当模型的精确率和召回率都很高时,F1分数也会很高;如果其中一个很低,F1分数也会受到影响。因此,F1分数是一个有用的单一指标,用于在精确率和召回率之间寻求最佳平衡。
N值的选择:Hitrate@N,hr@N(命中率@N)
注意,上述的准确率、召回率与F1分数的三个指标中,取的N值是固定的。然而,实际应用中,我们通过可以使用不同的N截断推荐结果,来获取召回率与准确率的平衡,因而,一般会使用Hitrate@N(简称hr@N),它是推荐系统中常用的一个评价指标,它用来衡量推荐系统是否能够推荐出用户感兴趣的物品,这个指标可以帮助我们了解推荐系统在前N个推荐中“命中”用户兴趣的能力。
对于单个用户,hr@N计算公式如下:
Hitrate@N = TopN推荐列表中包含用户感兴趣的项目数 用户兴趣项目的个数 \text{Hitrate@N} = \frac{\text{TopN推荐列表中包含用户感兴趣的项目数}}{\text{用户兴趣项目的个数}} Hitrate@N=用户兴趣项目的个数TopN推荐列表中包含用户感兴趣的项目数
对于多个用户,hr@N需要对所有用户的推荐结果取平均,其计算公式如下:
Hitrate@N = ∑ u i 对用户 u i 的 T o p N 推荐列表中包含其感兴趣的项目数 ∑ u i 用户 u i 兴趣项目的个数 \text{Hitrate@N} = \frac{\sum{u_i}{{对用户u_i的TopN推荐列表中包含其感兴趣的项目数}}}{\sum{u_i}{用户u_i兴趣项目的个数}} Hitrate@N=∑ui用户ui兴趣项目的个数∑ui对用户ui的TopN推荐列表中包含其感兴趣的项目数
一般而言,N越大,hr@N越大,准确率越低。所以可以根据实际应用情形来确定合适的N值。
实例
假设一个商品推荐系统的电子商务网站。在一周内,系统为用户A推荐了10个商品,其中用户A实际购买了3个。在这10个推荐商品中,有5个是用户A感兴趣的(包括购买的3个)。所有商品中,用户A感兴趣的总共有8个。那么:
● 准确率:
3
/
10
=
0.3
3/10=0.3
3/10=0.3(因为用户A购买了3个推荐商品)
● 召回率:
3
/
8
≈
0.375
3/8≈0.375
3/8≈0.375(因为系统只推荐了用户A感兴趣的8个商品中的3个)
● F1分数:
F
1
=
2
×
P
r
e
c
i
s
i
o
n
×
R
e
c
a
l
l
P
r
e
c
i
s
i
o
n
+
R
e
c
a
l
l
=
2
×
0.3
×
0.375
/
(
0.3
+
0.375
)
≈
0.342
F1=\frac{2×Precision×Recall}{Precision+Recall}=2×0.3×0.375/(0.3+0.375)≈0.342
F1=Precision+Recall2×Precision×Recall=2×0.3×0.375/(0.3+0.375)≈0.342
本文介绍的指标是一个参考值,在实战中,可以选择合适的指标对推荐系统进行调优。
原文地址:https://blog.csdn.net/burstone/article/details/143666876
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!