• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

AUC推荐评价指标

ml admin 1年前 (2018-06-28) 1332次浏览 0个评论 扫描二维码

最近在极客时间上买了一个推荐三十六式的课程,作为一个推荐系统方面的新手,在这个课程上还是可以学习不少推荐方面的知识,今天在看到 BPR 的时候给出了 AUC 在衡量推荐结果指标这块的分析。乍一看 AUC 还可以干这事,至少之前是没想过的,以前都是使用 ROC 或者 AUC 来衡量监督学习的好坏,现在还可以用来衡量推荐算法的好坏。

要分析这个就要从 AUC 的数学方面去理解这个概念了

AUC—排序衡量标准

auc 和 roc 之前会被经常用于监督训练的指标测试,衡量一个模型的好坏,auc 的英文就是 area under currency ,但是更加直白的解释就是衡量当前的得到的排序结果是不是最好的,如果 AUC 值一直趋近于 1 那么现在的排序的结果非常好,如果是 0.5 那么真的很糟糕,如果接近于 0 那么你就是完美的把所有的结果排错了,那么你只要将之前的结果加一个负号重新排序就好了。

在这里主要介绍的是个性化推荐的评价,那么对于电商推荐来说主要是对用户的推荐评价

 AUC 用于推荐算法排序结果衡量

  •  首先获取每一个用户推荐的商品结果,这其中包含了商品以及对商品的打分
  • 将推荐的结果按照商品的评分降序排列
  •  训练模型和测试集时间区间一定要不一样(这是常识。。),使用测试时间范围内的数据给之前推荐的结果打一个标签,如果用户在测试时间内消费了推荐的商品,那么给这个商品记录打一个 1,表示为正样本,否则为 0 就是负样本
  • 然后给每一个样本加上一个排序的值,假设当前给用户推荐了 50 个商品,那么排名第一的商品给它一个 50 的值,依此递减。
  • 最后使用以下这个公式来计算最终的 AUC 值

$$AUC=\frac{\sum_{i=1}^{n}r_i-\frac{M*(M+1)}{2}}{M*N}$$

上述的公式中 M 表示正样本的个数,N 表示负样本的个数,\(r_i\)就是前面给出的排名值,按照上述的计算规则就可以计算出一个用户的 AUC 值,如果要衡量整个推荐的好坏,可以计算所有的用户的 AUC 平均值


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明AUC 推荐评价指标
喜欢 (0)
admin
关于作者:

您必须 登录 才能发表评论!