NDCG、AUC介绍

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

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


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

其中,就是第 i 个结果的得分。 
2. NDCG
       由于不一样的搜索结果的数量极可能不相等,因此不一样搜索的DCG值不能直接作对比。解决的方法是比较NDCG。NDCG的定义以下:blog

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

2、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:伪阳性)get

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

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

能够发现两个规律:(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

相关文章
相关标签/搜索