https://blog.csdn.net/u014313009/article/details/38944687

SIGIR的一篇推荐算法论文中提到用NDCG和AUC作为比较效果的指标,之前没了解过这两个指标,便查找相关概念,整理如下。


一、NDCG
1.DCG
       首先,介绍一下DCG。DCG的全称是Discounted Cumulative Gain,它是衡量搜索引擎算法的一个指标。搜索引擎一般采用PI(per item)的方式进行评测,即逐条对搜索结果进行等级的打分。比如在Google搜索到一个词,得到5个结果。我们对这些结果进行3个等级的区分:Good、Fair、Bad,对应的分值分别是3、2、1。假设这5个结果的分值分别是3、1、2、3、2。
       使用DCG这个统计方法有两个前提:
       (1) 在搜索页面中,相关度越高的结果排在前面越好。
       (2) 在PI标注时,等级高的结果比等级低的结果好。
在一个搜索结果的list里面,假设有两个结果的评级都是Good,但是第一个排在第一位,第二个排在第40位,虽然等级是一样的,但排在40位的那个结果被用户看到的概率比较小,对整个页面的贡献也要比第一个结果小很多。所以第二个结果的得分应该有所减少。DCG的计算公式如下:

其中,就是第 i 个结果的得分。 
2. NDCG
       因为不同的搜索结果的数量很可能不相等,所以不同搜索的DCG值不能直接做对比。解决的方法是比较NDCG。NDCG的定义如下:

   IDCG(Ideal DCG),即理想的DCG。举上面的例子来说,5个搜索结果的分值是3、1、2、3、2,那么DCG = 3 + (1+1.26+1.5+0.86 )=7.62。
       而IDCG下的分值排列顺序是3、3、2、2、1,所以IDCG=3 + (3+1.26+1+0.43)=8.69。
       所以,NDCG = DCG / IDCG = 0.88。

二、AUC
1. ROC曲线
       ROC分析的是二元分类模型,即输出结果只有两种类别的模型。ROC空间将伪阳性率(FPR,False Position Rate)定为X轴,真阳性率(TPR,True Position Rate)定为Y轴。
      TPR = TP / ( TP + FN),表示在所有实际为阳性的样本中,被正确判断为阳性的比例。(TP:真阳性,FN:伪阴性)
       FPR = FP / ( FP + TN),表示在所有实际为阴性的样本中,被正确判断为阴性的比例。(TN:真阴性,FP:伪阳性)

对于包含100个阳性和100个阴性的样本,以下是4个分类器的结果:

其中,ACC表示准确率。可以把这四个分类器映射成ROC空间中的一个点,如下图所示:

可以发现两个规律:(1) 越靠近左上角的点,准确率越高。(2) 如果点位于(0,0)和(1,1)的连线下方,那么一个有效的补救方法是把所有预测结果反向(即,如果输出结果为正类,则最终判定为负类;如果输出结果为负类,则判定为正类)。
       在同一个分类器内,设置不同的阈值则会产生不同的坐标,这些坐标连成的曲线叫做ROC曲线。
       当阈值被设定为最高时,所有的样本都被预测为阴性,所以FP=0,TP=0,此时的FPR = FP / (FP+TN)=0,TPR = TP / (TP+FN) =0。这是坐标为(0,0)。
       当阈值被设定为最低时,所有样本都被预测为阳性,同理可得:FPR=1,TPR=1,坐标为(1,1)。所以ROC曲线经过了(0,0)和(1,1)。

2. AUC
       ROC曲线示例如下:

  为了比较分类器的好坏,就将每个曲线下的面积作为比较,面积越大,则分类器效果越好。其中,这个面积就叫做AUC,全称是Area Under the roc Curve(ROC曲线下面积)。
————————————————
版权声明:本文为CSDN博主「__鸿」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u014313009/article/details/38944687

posted @ 2019-09-09 13:31 Django's blog 阅读(1660) 评论(0) 推荐(0) 编辑
摘要: https://github.com/jihoo-kim/awesome-RecSys?fbclid=IwAR1m6OebmqO9mfLV1ta4OTihQc9Phw8WNS4zdr5IeT1X1OLWQvLk0Wz45f4 awesome-RecSys A curated list of awes 阅读全文
posted @ 2019-09-06 14:03 Django's blog 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 作者:清华阿罗链接:https://zhuanlan.zhihu.com/p/67959931来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 网上看到不错的推荐系统资料整理,分享给大家,包括书籍、会议、相关研究人员、论文和一些开源的代码,如下: 1. 书籍 Recom 阅读全文
posted @ 2019-09-06 13:59 Django's blog 阅读(799) 评论(0) 推荐(0) 编辑
摘要: 无论是XGBoost还是其他的Boosting Tree,使用的Tree都是cart回归树,这也就意味着该类提升树算法只接受数值特征输入,不直接支持类别特征,默认情况下,xgboost会把类别型的特征当成数值型。事实上,对于类别特征的处理,参考XGBoost PPT如下: xgboost 树模型其实 阅读全文
posted @ 2019-05-22 12:12 Django's blog 阅读(729) 评论(0) 推荐(0) 编辑
摘要: AI 科技评论编者按:现在,越来越多的企业、高校以及学术组织机构通过举办各种类型的数据竞赛来「物色」数据科学领域的优秀人才,并借此激励他们为某一数据领域或应用场景找到具有突破性意义的方案,也为之后的数据研究者留下有价值的经验。 Smilexuhc 在 GitHub 社区对各大数据竞赛名列前茅的解决方 阅读全文
posted @ 2019-05-14 11:22 Django's blog 阅读(4386) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/chengcheng1394/article/details/78940565 原创文章,转载请注明出处: http://blog.csdn.net/chengcheng1394/article/details/78940565 请安装TensorFlow 阅读全文
posted @ 2019-05-14 10:46 Django's blog 阅读(2091) 评论(0) 推荐(0) 编辑
摘要: https://zhuanlan.zhihu.com/p/35046241 包大人 深度学习炼丹劝退师 包大人 深度学习炼丹劝退师 包大人 深度学习炼丹劝退师 包大人 包大人 包大人 深度学习炼丹劝退师 深度学习炼丹劝退师 深度学习炼丹劝退师 278 人赞同了该文章 从最近的比赛学习CTR/CVR 阅读全文
posted @ 2019-05-14 10:40 Django's blog 阅读(1755) 评论(1) 推荐(1) 编辑
摘要: http://c.biancheng.net/view/2004.html 本节以分布式方式训练完整的 MNIST 分类器。 该案例受到下面博客文章的启发:http://ischlag.github.io/2016/06/12/async-distributed-tensorflow/,运行在 Te 阅读全文
posted @ 2019-05-13 20:56 Django's blog 阅读(912) 评论(0) 推荐(0) 编辑
摘要: 顾名思义,k均值聚类是一种对数据进行聚类的技术,即将数据分割成指定数量的几个类,揭示数据的内在性质及规律。我们知道,在机器学习中,有三种不同的学习模式:监督学习、无监督学习和强化学习: k 均值聚类是一种无监督学习方法。还记得哈利波特故事中的分院帽吗?那就是聚类,将新学生(无标签)分成四类:格兰芬多 阅读全文
posted @ 2019-05-13 18:19 Django's blog 阅读(5314) 评论(0) 推荐(0) 编辑
摘要: http://c.biancheng.net/view/1950.html 本节将介绍如何利用 RNN 预测未来的比特币价格。核心思想是过去观察到的价格时间序列为未来价格提供了一个很好的预估器。给定时间间隔的比特币值通过https://www.coindesk.com/api/的 API 下载,以下 阅读全文
posted @ 2019-05-13 17:32 Django's blog 阅读(777) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示