ROC与AUC小结

前言

最近组内在学习机器学习算法,参考书目是李航老师的《统计学习方法》。

目前工业界对于离线推荐效果验证的指标通常是AUC,我是前不久才知道这个指标的。硕士做毕业设计时,用的是Recall和Precision。相比Recall和Precision,AUC效果要更好一些。本文就学习和总结一下AUC这个指标。

当然,这只是在离线测试模型效果时比较有用,而线上的效果还是用线上AB比较有说服力。

要说明AUC,则先要说清楚ROC曲线。下面是一副来自网络的ROC曲线图:

ROC与AUC小结_第1张图片
ROC曲线图

先关注纵横坐标,我们看到纵坐标是True Positive Rate(TPR),横坐标是False Positive Rate(TPR)。我们在李航老师的《统计学习方法》中可以找到关于这两个概率的计算来源:

ROC与AUC小结_第2张图片
《统计学习方法》的截图

这里面给了Recall和Precision的计算方式,我们可以从另一个角度理解这两个参数:

精确率是 TP/(TP+FP),也就是预测正确的除以我们给用户推荐的Item的总数。因为我们给用户推荐的Item中,除去用户点击的,剩下的就是我们把没有点击的预测成了正样本,也就是FP。

召回率是TP/(TP+FN),也就是预测正确的除以用户实际点击的全部Item的总数。因为用户实际点击的Item中,除去我们预测对的,剩下的就是我们没有预测到的,也就是把会点击的预测成了负样(在推荐列表中没显示出来,所以是负的),也就是FN。

有了TP、FP和FN这些概念,我们可以计算FPR和TPR了。

通常,我们会对一个Item列表给出某个User下的概率,例如I={i1,i2,i3,i4,i5}对应的预测P={p1,p2,p3,p4,p5}。对于这个Item列表,用户的实际点击情况是T={1,0,0,1,0},我们用1表示点击,以0表示未点击,也就是说1代表正样本,0代表负样本。

假设p1

我们预测对的TP=1,FP=2。则TPR=TP/P=1/3,FPR=FP/N=2/2=1。

AUC

计算方法

你可能感兴趣的:(ROC与AUC小结)