深度理解
现在我们搞清楚了AUC的概念,AUC就是ROC曲线围成的图形面积。而ROC曲线上每一个点都是通过不同的阈值计算得到的点。
我们结合一下AUC的图像以及上面的例子来深度理解一下这个概念,对于AUC曲线而言,我们发现它是单调递增的。也就是说FPR越大,对应的TPR也就越大。这个是比较直观的,因为FPR越大,说明我们把更多的样本预测成了正例,那么显然TPR也就越大。也就是说我们召回的正样本变多了,比例也就变多了。
当FPR=1的时候TPR也等于1,这个点表明我们把所有的样本都预测成了正例。显然在这种情况下,所有的正例都被预测对了,TPR自然就是1。我们再来看另外一个极值点,也就是FPR等于0的点。
FPR等于0表明了假阴率为0,也就是说没有一个负样本被预测错,也就对应着模型预测为正例的样本数非常少。所以FPR这个点对应的TPR越高,往往说明模型的效果越好。
我们理解了AUC的概念之后,免不了问一个问题,AUC这个值究竟代表了什么呢,能够反映什么结果呢?
我们来看下面这张图:
下面这张图中的绿线围成的面积明显大于粉线,也就是AUC1 > AUC2。从这张图我们可以看出,AUC越大,说明曲线围成的面积越大,如果我们选择0-1当中去一个点做垂线,可以得到相同FPR下,通常AUC越大的,对应的TPR也越大(有反例,见下图)。
TPR越大说明模型可以在分错同样数量负样本的情况下预测正确更多的正样本,这代表了模型区分正负样本的能力。
为什么要比较AUC而不是设定一个阈值比较TPR呢?
因为有些时候模型的情况比较复杂,比如下面这张图:
在p点以前紫色模型的效果明显更好,但是p点之后就是粉红色的模型更好了。如果只凭单个点的情况,我们很难反应模型整体的能力。所以用AUC可以衡量模型整体上区分正负样本的能力。
最后我们来思考一个问题,AUC最坏的情况是多少?会是0吗?
错了,AUC最坏的情况是0.5。因为如果是随机猜测正负例,那么我们猜测正确的正例数量应该永远占当前猜测数量的0.5,在这种情况下TPR和FPR一直相等,也就是我们画出来的是一条直线,比如下图:
如果算出来的AUC小于0.5怎么办?说明模型可能学习到了样本和特征之间负相关的关系,我们可以试着调换一下0和1两个类别,算出来的AUC应该能变成0.5以上。
总结
在前面的文章当中我们曾经说过,在机器学习的使用场景当中,我们往往更加看重正例。比如广告的点击率预测、搜索排序、推荐等等这些场景下,我们更加关注用户点击行为的发生和预测准确情况,而不太关心没有点击是否预测准确。在这些场景当中,我们衡量精确度或者是召回其实不是特别重要,尤其这种涉及排序、摆放位置调整的场景,我们更加在意模型是否能够把高质量的内容给出一个高的预测分,让它能够排在前面,让用户优先看到。这个时候往往AUC更加能够说明模型的能力。
也因此,相比于精确度、准确度和召回率,在实际的工业应用场景当中,我们可能使用AUC更多一些。当然这并非是说其他概念不重要,这主要还是应用场景决定的。既然应用场景决定了使用AUC的范围很广,那么当我们去应聘岗位的时候,问到AUC的可能性就很高,尤其是考察候选人基础能力的时候。如果被问到,光理解它是什么意思是不够的,我们还需要掌握它的应用场景,它的前因后果,甚至能够进行发散思考一些之前没有想过的问题。
希望大家都能有所收获,原创不易,厚颜求个赞和转发,让我们为了成为更优秀的自己而努力。
,