推荐系统(2)—— 常见评估指标(重点)

0、推荐术语

LCN: Longest Continuous no-click Num,连续展现不点击;

1、PNR(Positive Negative Rate)

正逆序比 = 正序数 / 逆序数;

2、TGI(Target Group Index)

TGI:即Target Group Index(目标群体指数)

TGI指数= [目标群体中具有某一特征的群体所占比例/总体中具有相同特征的群体所占比例]*标准数100。

TGI指数表征:不同特征用户关注问题的差异情况,其中TGI指数等于100表示平均水平,高于100,代表该类用户对某类问题的关注程度高于整体水平。

3、COPC(Click over Predicted Click)

copc = 实际的点击率/模型预测的点击率,主要衡量model整体预估的偏高和偏低,同样越接近1越好,一般情况下在1附近波动。这个指标在展示广告上应用多一些。

4、pCTR(Predict Click-Through Rate)

广告点击率预测,pCTR要解决的问题是预测特定用户在特定广告位对特定广告当特定环境下的点击概率。 

5、RMSE(Root Mean Square Error) 

计算:是观测值与真值偏差的平方和与观测次数m比值的平方根。

均方根误差:用来衡量观测值同真值之间的偏差;

 平均绝对误差:是绝对误差的平均值,能更好地反映预测值误差的实际情况。

RMSE与MAE对比:RMSE相当于L2范数,MAE相当于L1范数。次数越高,计算结果就越与较大的值有关,而忽略较小的值,所以这就是为什么RMSE针对异常值更敏感的原因(即有一个预测值与真实值相差很大,那么RMSE就会很大)。

6、SD(Standard Deviation)

计算:是方差的算数平方根,是用来衡量一组数自身的离散程度。

RMSE与标准差对比:标准差是用来衡量一组数自身的离散程度,而均方根误差是用来衡量观测值同真值之间的偏差,它们的研究对象和研究目的不同,但是计算过程类似。

7、R-square(确定系数)

  在讲确定系数之前,我们需要介绍另外两个参数SSR和SST,因为确定系数就是由它们两个决定的。

  其实“确定系数”是通过数据的变化来表征一个拟合的好坏。由上面的表达式可以知道“确定系数”的正常取值范围为[0 1],越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好

  当我们做逻辑回归的时候,可以通过mse计算loss,但是仅仅看loss难以衡量模型的好坏,需要我们通过R_square来衡量模型。

 

对于R^2可以通俗地理解为使用均值作为误差基准,看预测误差是否大于或者小于均值基准误差

R2_score = 1,样本中预测值和真实值完全相等,没有任何误差,表示回归分析中自变量对因变量的解释越好。

R2_score = 0。此时分子等于分母,样本的每项预测值都等于均值。

R2_score不是r的平方,也可能为负数(分子>分母),模型等于盲猜,还不如直接计算目标变量的平均值。

注意事项:

1、R^2一般用在线性模型中(非线性模型也可以用)

2、R^2不能完全反映模型预测能力的高低,某个实际观测的自变量取值范围很窄,但此时所建模型的R2 很大,但这并不代表模型在外推应用时的效果肯定会很好。

3、数据集的样本越大,R²越大,因此,不同数据集的模型结果比较会有一定的误差,此时可以使用Adjusted R-Square (校正决定系数),能对添加的非显著变量给出惩罚:

 

8、AUC(Area Under Curve)

ROC(Receiver Operating Characteristic)曲线与AUC(Area Under Curve)

     

  ROC曲线:

  • 横坐标:假正率(False positive rate, FPR),FPR = FP / [ FP + TN] ,代表所有负样本中错误预测为正样本的概率,假警报率;
  • 纵坐标:真正率(True positive rate, TPR),TPR  = TP / [ TP + FN] ,代表所有正样本中预测正确的概率,命中率。

  对角线对应于随机猜测模型,而(0,1)对应于所有整理排在所有反例之前的理想模型。曲线越接近左上角,分类器的性能越好。

  ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。

  ROC曲线绘制:

  (1)根据每个测试样本属于正样本的概率值从大到小排序;

  (2)从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本;

  (3)每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。 

   当我们将threshold设置为1和0时,分别可以得到ROC曲线上的(0,0)和(1,1)两个点。将这些(FPR,TPR)对连接起来,就得到了ROC曲线。当threshold取值越多,ROC曲线越平滑。

   AUC(Area Under Curve)即为ROC曲线下的面积。AUC越接近于1,分类器性能越好。

   物理意义:首先AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。当然,AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。

  计算公式:就是求曲线下矩形面积。

   

推荐系统的 auc:https://mp.weixin.qq.com/s/e3qcSo8LPDf2S8TUvU6S1A

  AUC代表模型预估样本之间的排序关系,即正负样本之间预测的gap越大,auc越大。

  1. ROC曲线反映了分类器的分类能力,结合考虑了分类器输出概率的准确性
  2. AUC量化了ROC曲线的分类能力,越大分类效果越好,输出概率越合理
  3. AUC常用作CTR的离线评价,AUC越大,CTR的排序能力越强

计算逻辑问题:

AUC计算是基于模型对全集样本的的排序能力,而真实线上场景,往往只考虑一个用户一个session下的排序关系。这里的gap往往导致一些问题。正如参考[3]中的举例的几个case,比较典型。主要包括两点:

  1. 线上会出现新样本,在线下没有见过,造成AUC不足。这部分更多是采用online learning的方式去缓解,AUC本身可改进的不多。
  2. 线上的排序发生在一个用户的session下,而线下计算全集AUC,即把user1点击的正样本排序高于user2未点击的负样本是没有实际意义的,但线下auc计算的时候考虑了它。
  3. 改进:deepES 数据分析时,分用户进行 pnr 统计;

 9、PR曲线和ROC曲线比较

  ROC曲线特点:

  (1)优点:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。因为TPR聚焦于正例,FPR聚焦于与负例,使其成为一个比较均衡的评估方法。

      在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。

  (2)缺点:上文提到ROC曲线的优点是不会随着类别分布的改变而改变,但这在某种程度上也是其缺点。因为负例N增加了很多,而曲线却没变,这等于产生了大量FP。像信息检索中如果主要关心正例的预测准确性的话,这就不可接受了。在类别不平衡的背景下,负例的数目众多致使FPR的增长不明显,导致ROC曲线呈现一个过分乐观的效果估计。ROC曲线的横轴采用FPR,根据FPR ,当负例N的数量远超正例P时,FP的大幅增长只能换来FPR的微小改变。结果是虽然大量负例被错判成正例,在ROC曲线上却无法直观地看出来。(当然也可以只分析ROC曲线左边一小段)

  PR曲线:

  (1)PR曲线使用了Precision,因此PR曲线的两个指标都聚焦于正例类别不平衡问题中由于主要关心正例,所以在此情况下PR曲线被广泛认为优于ROC曲线。

  使用场景:

  1. ROC曲线由于兼顾正例与负例,所以适用于评估分类器的整体性能,相比而言PR曲线完全聚焦于正例。
  2. 如果有多份数据且存在不同的类别分布,比如信用卡欺诈问题中每个月正例和负例的比例可能都不相同,这时候如果只想单纯地比较分类器的性能且剔除类别分布改变的影响,则ROC曲线比较适合,因为类别分布改变可能使得PR曲线发生变化时好时坏,这种时候难以进行模型比较;反之,如果想测试不同类别分布下对分类器的性能的影响,则PR曲线比较适合。
  3. 如果想要评估在相同的类别分布下正例的预测情况,则宜选PR曲线。
  4. 类别不平衡问题中,ROC曲线通常会给出一个乐观的效果估计,所以大部分时候还是PR曲线更好。
  5. 最后可以根据具体的应用,在曲线上找到最优的点,得到相对应的precision,recall,f1 score等指标,去调整模型的阈值,从而得到一个符合具体应用的模型。

 

posted @ 2020-12-20 19:42  深度机器学习  阅读(5717)  评论(0编辑  收藏  举报