去年开始使用AUC作为算法的其中一种离线评估指标,但是对AUC的理解其实非常肤浅。刚好最近有个小伙伴抛出一条AUC的另一种计算公式,问大家谁可以解释。乐于分享的我,深入研究了一下AUC,整了一份PPT,由浅入深,帮助大家从概率意义的角度理解AUC。
红框框住的公式就是引发这场AUC小探索的导火线。咋一看挺复杂的,其实原理非常简单。且听我慢慢讲解。
内容分两大部分:一是回顾一下AUC的基础知识;二是从概率意义的角度理解AUC。(男人不止一面,AUC也是。)
AUC,顾名思义,它其实是一个面积,是ROC曲线下面的面积。这是AUC的物理意义。
AUC越接近1,模型效果越好。
精确率、召回率等指标,都需要设定一个阈值去判别是属于正类还是负类,例如预测分大于等于0.5判别为正类,小于0.5判别为负类。如何设定这个阈值,是个问题。而AUC这个指标则不需要设阈值。(或者说,每种阈值的情况都考虑了,然后描点连线求面积。下图有例子。)
上图给出了一个很简单的例子。四个样本,按预测分高到低排序,从上到下依次找到四个阈值(红线),每个阈值的情况下,分别计算出TPR和FPR,并描点,再用线段相连,最后计算出曲线下面的面积(该例子AUC=0.75)。
这里介绍一种更加直观简单的绘图方法。
步骤一:分格。假设有|P|个正样本,|N|个负样本,则在纵坐标[0,1]区间上等分|P|格,在横坐标[0,1]区间上等分|N|格;
步骤二:画线。用“正上负右法”,从(0,0)点开始,按预测分高到低遍历样本,遇到正样本就向上爬一格,遇到负样本就向右爬一格,最后刚好爬到(1,1)点。
上图给出了AUC的概率意义,和相应的计算公式。
这里讲解公式含义。分母部分很好理解(如图中解释),分子部分分成两部分,比较费解。其实它本质的含义是非常简单——对第一个正样本来说,下面有2个负样本和它可以组成(P,N)搭配(正样本排在负样本前面);对第二个正样本来说,下面有1个负样本和它可以组成(P,N)搭配,所以共有2+1=3种(P,N)搭配,所以AUC=3/4=0.75 。
后记
后来发现维基百科中对AUC有些负面的描述:
潜在问题
AUC of ROC是机器学习的社群最常使用来比较不同模型优劣的方法[2] 。然而近来这个做法开始受到质疑,因为有些机器学习的研究指出,AUC的噪声太多,并且很常求不出可信又有效的AUC值(此时便不能保证AUC传达本节开头所述之意义),使得AUC在模型比较时产生的问题比解释的问题更多[3][4][5] 。
时间关系,有机会再深入研究~