发布网友 发布时间:2022-10-06 13:10
共1个回答
热心网友 时间:2023-10-22 19:23
网站在提供推荐服务时,一般是给用户一个个性化的推荐列表,这种推荐叫做TopN推荐,TopN推荐的预测准确率一般通过召回率和精确率来度量。
在介绍召回率和精确率之前,首先要了解一下混淆矩阵:
TP(true positive):表示样本的真实类别为正,最后预测得到的结果也为正;
FP(false positive):表示样本的真实类别为负,最后预测得到的结果却为正;
FN(false negative):表示样本的真实类别为正,最后预测得到的结果却为负;
TN(true negative):表示样本的真实类别为负,最后预测得到的结果也为负。
则召回率和精确率分别用混淆矩阵计算如下: 两者取值在0和1之间,数值越接近1,召回率或精确率就越高。通俗来讲,精确率就是说检索出的信息有多少是用户真正感兴趣的;召回率是指用户真正感兴趣的信息有多少被我们预测到了。
要了解AUC,首先要知道什么是ROC曲线。ROC即receiver operating characteristic curve受试者操作特征,它源于二战雷达信号分析技术。
ROC曲线绘制:分别计算模型结果的FPR与TPR,然后将TPR作为纵坐标,TPR作为横坐标作图,便可得到ROC曲线,ROC曲线上的每一个点对应一个阈值。
其中,TPR(真正例率): ,指的是模型预测的正确正例占所有正例的比例,等同于召回率,可以理解为正例的灵敏度,TPR越大,则预测的正例中正例占比越高;FPR(假负例率): ,指的是模型预测的错误反例占所有预测反例的比例,等同于反例预测的错误率,也可以理解为模型对负例的特异度,FPR也可以用公式(1 - TNR)来表示。FPR越大,则预测的正例中反例越多。
AUC:AUC的定义是ROC曲线下的面积,它表示的是随机抽取一对正负样本,把正样本预测为1的概率大于把负样本预测为1的概率的概率。ROC曲线一般都会处于0.5-1之间,所以AUC一般是不会低于0.5的,0.5为随机预测的AUC。AUC越大,反映出正样本的预测结果更加靠前,推荐的样本更能符合用户的喜好。
AUC的计算:
法一:按照AUC的含义,计算正例分数大于反例分数的概率,但该方法计算比较复杂,效率不高。
法二: 该方法该方法为方法一的进阶版本,首先rank项就是样本按照score值从小到大升序排序,然后只对正样本的序号相加,然后减去正样本在正样本之前的数,结果便是正样本大于负样本的数,然后再除于总的样本数得到的便是AUC值。
它的直观理解就是:rank项是小于该样本分值的样本数; 是等差数列之和,即将所有正样本排序之和相加;分子代表的就是将所有小于某正样本的个数去掉,得到的便是小于该正样本的负样本数; 是所有正负样本两两排序的数之和;最终得到正样本排在负样本之前的概率值。
精确率和召回率都只能衡量检索性能的一个方面,最理想的情况肯定是精确率和召回率都比较高。但通常精确率和召回率是此消彼长的,如果我们设定一个阈值,在这个阈值之上的学习器认为是正样本,阈值之下的学习器认为是负样本。可以想象到的是,当阈值很高时,预测为正样本的是分类器最有把握的一批样本,此时精确率往往很高,但是召回率一般较低。相反,当阈值很低时,分类器把很多拿不准的样本都预测为了正样本,此时召回率很高,但是精确率却往往偏低。
当我们想提高召回率的时候,肯定会影响精确率,所以可以把精确率看做是召回率的函数,即: ,也就是随着召回率从0到1,精确率的变化情况。那么就可以对函数 在 上进行积分,也就是计算PR曲线下的面积,得到AP计算公式如下: 其中 表示第k个文档是否相关,若相关则为1,否则为0, 表示前k个文档的精确率。 AP的计算方式可以简单的认为是: 其中 表示相关文档的总个数, 表示,结果列表从前往后看,第 r 个相关文档在列表中的位置。比如,有三个相关文档,位置分别为1、3、6,那么AveP=1/3×(1/1+2/3+3/6)。
通常会用多个查询语句来衡量检索系统的性能,所以应该对多个查询语句的AveP求均值即Mean average precision(MAP),公式:
NDCG常用于作为对排序的评价指标,当我们通过模型得出某些元素的排序的时候,便可以通过NDCG来测评这个排序的准确度。
NDCG首先要从CG(cumulative gain,累计增益)说起,CG可以用于评价基于打分/评分的个性推荐系统。假设我们推荐 个物品,这个推荐列表的 计算公式如下: 其中 表示第 个物品的相关性或者评分。
CG没有考虑推荐的次序,在此基础之后我们引入对物品顺序的考虑,就有了DCG(discounted CG),折扣累积增益。公式如下: 而DCG没有考虑到推荐列表和每个检索中真正有效结果个数,所以最后我们引入NDCG(normalized discounted CG),顾名思义就是标准化之后的DCG: 其中IDCG是指ideal DCG,也就是完美结果下的DCG。
通俗来解释,NDCG其实就是:一个推荐系统返回一些项并形成一个列表,我们想要计算这个列表有多好。每一项都有一个相关的评分值,通常这些评分值是一个非负数,这就是gain(增益)。此外,对于这些没有用户反馈的项,我们通常设置其增益为0。现在,我们把这些分数相加,也就是Cumulative Gain(累积增益)。我们更愿意看那些位于列表前面的最相关的项,因此,在把这些分数相加之前,我们将每项除以一个递增的数(通常是该项位置的对数值),也就是折损值,并得到DCG。在用户与用户之间,DCG没有直接的可比性,所以我们要对它们进行归一化处理。最糟糕的情况是,当使用非负相关评分时DCG为0。为了得到最好的,我们把测试集中所有的条目置放在理想的次序下,采取的是前K项并计算它们的DCG。然后将原DCG除以理想状态下的DCG并得到NDCG,它是一个0到1之间的数。