推荐算法常用评价指标:ROC、AUC、F1、HR、MAP、NDCG

1.再复习一遍accuracy, precision, recall, F1 score:

2. 再复习一遍ROC、AUC

ROC曲线的横坐标为false positive rate(FPR),纵坐标为true positive rate(TPR)

AUC(Area Under Curve)被定义为ROC曲线下的面积。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好

3. Hit Rate

在top-K推荐中,HR是一种常用的衡量召回率的指标,计算公式为:

HR@k = \frac{Hit@k}{|true set|}

举个简单的例子,三个用户购买的商品个数分别是10,12,8, 模型得到的top-10推荐列表中,分别有6个,5个,4个在测试集中,那么此时HR的值是 (6+5+4)/(10+12+8) = 0.5。

4. MAP(Mean Average Precision)

MAP(Mean Average Precision)本是在信息检索领域用以衡量搜索引擎的排序性能的评价指标,对于推荐系统,可以将推荐列表视为一个排序列表。例如对于【命中,命中,未命中,未命中,未命中】和【未命中,未命中,未命中,命中,命中】这两个top-5的推荐列表,显然他们的precision都是2/5​,但是显然第一个推荐列表的性能要高于第二个推荐列表,因为其在第1、2位就已命中。

MAP可以由它的三个部分来理解:P,AP,MAP

4.1   P: precision

正确率只是考虑了返回结果中相关文档的个数,没有考虑文档之间的。对一个搜索引擎或推荐系统而言返回的结果必然是有序的,而且越相关的文档排的越靠前越好,于是有了AP的概念。

4.2   AP: average precision

对一个有序的列表,计算AP的时候要先求出每个位置上的precision,然后对所有的位置的precision再做个average。如果该位置的文档是不相关的则该位置 precision=0.

对于推荐列表【命中,命中,未命中,未命中,未命中】(假设用户实际购买了3种商品,而我们的推荐系统在前5个只给出了2个)

而对于推荐列表【未命中,未命中,未命中,命中,命中】(假设用户实际购买了3种商品,而我们的推荐系统在前5个只给出了2个):

4.3 MAP

那么对于MAP(Mean Average Precision),就很容易知道即为所有用户 u 的AP再取均值(mean)

5、Normalized Discounted Cummulative Gain(NDCG)

归一化折损累计增益(NDCG) 这个指标通常用来评价搜索结果算法.

5.1 累计增益(CG)

CG,cumulative gain,是DCG的前身,只考虑到了相关性的关联程度,没有考虑到位置的因素。它是一个搜素结果相关性分数的总和。指定位置p上的CG为:

rel_i代表i这个位置上的相关度。

举例:假设搜索“篮球”结果,最理想的结果是:B1、B2、 B3。而出现的结果是 B3、B1、B2的话,CG的值是没有变化的,因此需要下面的DCG。

5.2 折损累计增益(DCG)

DCG, Discounted 的CG,就是在每一个CG的结果上除以一个折损值,为什么要这么做呢?目的就是为了让排名越靠前的结果越能影响最后的结果。假设排序越往后,价值越低。到第i个位置的时候,它的价值是1/log2(i+1),所以:

5.3 归一化折损累计增益(NDCG)

NDCG:  Normalized 的DCG,由于不同检索词搜索之后返回的数量是不一致的,而DCG是一个累加的值,没法针对两个不同的搜索结果进行比较(因为返回结果越多,DCG会越大),因此需要归一化处理,这里是除以IDCG。

IDCG为理想情况下最大的DCG值。

5.4 举例

假设搜索回来的6个结果,其相关性分数分别是 3、2、3、0、1、2

所以 DCG  = 3+1.26+1.5+0+0.38+0.71 = 6.86

为了求NDCG,首先需要计算IDCG:假如我们实际召回了8个物品,除了上面的6个,还有两个结果,假设第7个相关性为3,第8个相关性为0。那么在理想情况下的相关性分数排序应该是:3、3、3、2、2、1、0、0。计算IDCG@6:

所以IDCG = 3+1.89+1.5+0.86+0.77+0.35 = 8.37

因此,最终 NDCG@6 = DCG/IDCG = 6.86/8.37 = 81.96%

 

  • 9
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值