女神图开篇
前言:重难点在AUC
一、离线评价
1)评分预测的指标
1.MAE
MAE(Mean absolute error)
是预测评分,
是实际评分
2.MSE
MSE(Mean square error),均方误差
3.RMSE
RMSE(Root Mean square error),均方根误差(又称标准误差)
与MSE有啥区别?
4.NMAE
NMAE(Normalized Mean absolute error ),单个用户u的标准平均绝对误差
2)基于分类的指标
1.Precision & Recall
对于二分类问题有:混淆矩阵(confusion matrix)
| 样本是正类别 | 正样本 | 样本是负类别 | 负样本 | |
|---|---|---|
| 模型预测为正 | TP (true positive,真正例) | FP (false positive,假正例) |
| 模型预测为负 | FN(false negative,假负例) | TN (true negative,真负例) |
- Precision(精确度) :真正为正例的样本数 在 所有预测为正例的样本数 的比例
通俗理解:我只关心正样本,预测的正样本中有多少比例是对的
- Recall(召回率): 预测为正例的样本数 在 所有正例的样本数 的比例
通俗理解:我只关心正样本,正样本有多少比例我预测对的
- ACC(accuracy):准确率(一般不用)
- F-score
F-score用来综合Precision和recall
当 时,则为
为几何平均数
2. ROC AUC
ROC概念
ROC(Receiver Operating Characteristic),接收者操作特征曲线。wiki解释
ROC空间将伪阳性率(FPR)定义为 X 轴,真阳性率(TPR)定义为 Y 轴。
-
TPR(真阳性率):在所有实际为阳性的样本中,被正确地判断为阳性之比率
-
TNR(真阴性率):TN / (FP + TN) = 1-FPR 。
-
FPR(假阴性率):在所有实际为阴性的样本中,被错误地判断为阳性之比率
-
老是忘记roc曲线的坐标含义,下面是记忆法:首先记住纵轴是TPR,就是recall 。要懂recall是以正样本为中心观察的,正样本被召回来多少。那对应的,也要以负样本为中心,负样本的召回率就是横坐标,正样本的召回率就是纵坐标 。
-
给定一个二元分类模型和它的阈值**,就能从所有样本的(阳性/阴性)真实值和预测值计算出一个 (X=FPR, Y=TPR) 座标点。
-
从 (0, 0) 到 (1,1) 的对角线将ROC空间划分为左上/右下两个区域,在这条线的以上的点代表了一个好的分类结果(胜过随机分类),而在这条线以下的点代表了差的分类结果(劣于随机分类)。
-
完美的预测是一个在左上角的点,在ROC空间座标 (0,1)点,X=0 代表着没有伪阳性,Y=1 代表着没有伪阴性(所有的阳性都是真阳性)
AUC概念
- 上述ROC空间里的单点,是给定分类模型且给定阈值后得出的。但同一个二元分类模型的阈值可能设定为高或低,每种阈值的设定会得出不同的FPR和TPR。
- 将同一模型每个阈值 的 (FPR, TPR) 座标都画在ROC空间里,就成为特定模型的ROC曲线。
- ROC曲线下方的面积(英语:Area under the Curve of ROC (AUC ROC))
- 我的理解:TPR为正样本的召回率,FPR为负样本的分错率。故TPR越大越好,FPR越小越好
- 若随机抽取一个阳性样本和一个阴性样本,分类器正确判断阳性样本的值高于阴性样本之几率 = AUC
AUC的两种求法
- 梯形近似算面积
- 概率法 (参考)
-
对于二分类问题,预测模型会对每一个样本预测一个得分s或者一个概率p。 然后,可以选取一个阈值t,让得分s>t的样本预测为正,而得分s<t的样本预测为负。
-
对于真正率TPR,分子是 得分>t里面 正样本的数目,分母是总的正样本数目。 而对于假正率FPR,分子是 得分>t里面 负样本的数目,分母是总的负样本数目。
-
如果定义
为得分>t里面 正样本的数目,
为得分>t里面 负样本的数目;定义
为总的正样本数目,
为总的负样本数目,则TPR,FPR可表示为:
-
随着阈值t的变化,TPR和FPR在坐标图上形成一条曲线,这条曲线就是ROC曲线。
-
如果模型是随机的,模型得分对正负样本没有区分性,那么得分大于t的样本中,正负样本比例和总体的正负样本比例应该基本一致。 即有
结合上面的式子可知TPR和FPR相等,对应的ROC曲线是一条直线!
AUC概率解释
- 对于分类器C,对于任意样本,有一个模型预测输出值s。对于一对正负样本,分类器预测正样本得分为
预测负样本得分为
。
- 假设阈值为t,负样本得分在
之间的概率为:
- 负样本得分在
之间 , 且正样本得分比负样本高的概率为
上面计算的是某个阈值的情况,便利所有情况则得到对任意阈值,正样本得分比负样本高的概率
积分项里面实际上是这样一个事件的概率:随机取一对正负样本,负样本得分为t且正样本大于t。因此,对这个概率微元积分就可以到正样本得分大于负样本的概率。所以ROC曲线下面积等于:随机取一对正负样本,正样本得分比负样本高的概率
AUC的排序特性
- AUC指的是模型将正样本排在负样本前面的概率,所以,AUC常用在排序场景的模型评估,比如搜索和推荐等场景
- 根据概率解释,如果将所有的样本的得分都加上一个额外的常数,并不改变这个概率,因此AUC不变。 因此,在广告等需要绝对的点击率场景下,AUC并不适合作为评估指标,而是用logloss等指标。
- 利用概率解释,还可以得到AUC另外一个性质,对正负样本比例不敏感。如果进行随机负采样,负采样的新样本中
和
的比例不变(因为是随机采样),不影响PFR,与影响AUC,AUC不变。
用排序方法来计算AUC
- 假设测试集有
个正样本,
个负样本,正样本自身原本有排序(如搜索结果有最优,次优)。正样本自身排序为1、2、3...j...
。对于所有正负样本,模型都有预测得分,依次排序为1、2、3...
...
。
- 对于第j个正样本,模型预测给出得分,其得分排序位为
(从小到大排,分数最低的为第1位。也可以得分最高为1位,思想不变) ,意味着有
个负样本(得分比它小)排在该正样本前面。那么随机取一个负样本,其得分比该正样本得分低的概率为(概率随机分布):
- 所以平均下来,随机取正样本比随机取负样本得分大的概率为
具体来讲是:
- 首先把所有样本按照模型预测得分score排序依次用rank表示它们
- 如最大score的样本,rank=n(其中
,N为负样本数,M为正样本数),其次为n-1
- 然后把所有正样本的rank想加,再减去两个正样本组合的情况
- 得到所有样本中有多少对正类样本的score大于负类样本的score,然后再除以
3)基于排序的指标
1.MAP
- AP(average precision):对不同召回率点进行平均,是“顺序敏感的recall” 。在一次检索排序结果中,正样本有r个,排序很重要,每个位置有不同权重 。
是第j个正样本的排序位置
- MAP(Mean average precision) 是对所有用户AP取平均 参考
2.NDCG
-
G(Gain):列表中item的相关性分数(根据场景定义)
-
CG(Cumulative Gain):累积增益,对K个item收益累加
-
DCG(Discounted Cumulative Gain):折扣累积增益。考虑位置因素,不同位置进行对数折扣
- NDCG(Normalized Discounted Cumulative Gain)
对一个用户对推荐列表可以计算DCG,但不同用户评判不同,需要归一化才可以比较。IDCG(最优排序的DCG,如正样本都排在前面) 。
3.MRR
- MRR(Mean Reciprocal Rank):
- Q是用户的个数,
是对于第i个用户,推荐列表中第一个在ground-truth结果中的item所在的排列位置。
- 举例:有三个用户,推荐列表中正例的最小rank值分别为3,2,1,那么MRR=(1 + 0.5 + 0.33) / 3 = 0.61
4)其它指标
1.Coverage
覆盖率最简单的定义是,推荐系统能够推荐出来的物品占总物品的比例。覆盖率越高表明模型能够针对更多的item产生推荐,从而促进长尾效应的挖掘。
2.HR
- Hit rate,在top-K推荐中,HR是一种常用的衡量召回率的指标.分母是所有的测试集合,分子式每个用户top-K推荐列表中属于测试集合的个数的总和。
- 分母是所有的测试集合,分子式每个用户top-K推荐列表中属于测试集合的个数的总和。
- 举例:三个用户在测试集中的商品个数分别是10,12,8,模型得到的top-10推荐列表中,分别有6个,5个,4个在测试集中,那么此时HR的值是 (6+5+4)/(10+12+8) = 0.5。参考
3. ARHR
ARHR(Average Reciprocal Hit Rank)也是目前Top-N推荐中十分流行的指标,它是一种加权版本的HR,它衡量一个item被推荐的强度。