2.20
AUC=21i=1∑m−1(xi+1−xi)⋅(yi+yi+1)
[解析]:在解释AUC公式之前,我们需要先弄清楚ROC曲线的具体绘制过程,下面我们就举个例子,按照西瓜书图2.4下方给出的绘制方法来讲解一下ROC曲线的具体绘制过程。假设我们已经训练得到一个学习器h(s),现在用该学习器来对我们的8个测试样本(4个正例,4个反例,也即m+=m−=4)进行预测,假设预测结果为:
(s1,0.77,+),(s2,0.62,−),(s3,0.58,+),(s4,0.47,+),(s5,0.47,−),(s6,0.33,−),(s7,0.23,+),(s8,0.15,−)
其中,+和−分别表示为正例和为反例,里面的数字表示学习器h(s)预测该样本为正例的概率,例如对于反例s2来说,当前学习器h(s)预测它是正例的概率为0.62。根据西瓜书上给出的绘制方法可知,首先需要对所有测试样本按照学习器给出的预测结果进行排序(上面给出的预测结果已经按照预测值从大到小排好),接着将分类阈值设为一个不可能取到的最大值,显然这时候所有样本预测为正例的概率都一定小于分类阈值,那么预测为正例的样本个数为0,相应的真正例率和假正例率也都为0,所以此时我们可以在坐标(0,0)处打一个点。接下来我们需要把分类阈值从大到小依次设为每个样本的预测值,也就是依次设为0.77、0.62、0.58、0.47、0.33、0.23、0.15,然后每次计算真正例率和假正例率,再在相应的坐标上打一个点,最后再将各个点用直线串连起来即可得到ROC曲线。需要注意的是,在统计预测结果时,预测值等于分类阈值的样本也算作预测为正例。例如,当分类阈值为0.77时,测试样本s1被预测为正例,由于它的真实标记也是正例,所以此时s1是一个真正例。为了便于绘图,我们将x轴(假正例率轴)的单位刻度定为m−1,y轴(真正例率轴)的单位刻度定为m+1,这样的话,根据真正例率和假正例率的定义可知,每次变动分类阈值时,若新增i个假正例,那么相应的x轴坐标也就增加m−i,同理,若新增j个真正例,那么相应的y轴坐标也就增加m+j。按照以上讲述的绘制流程,最终我们可以绘制出如下图所示的ROC曲线

在这里我们为了能在解析公式(2.21)时复用此图所以没有写上具体地数值,转而用其数学符号代替。其中绿色线段表示在分类阈值变动的过程中只新增了真正例,红色线段表示只新增了假正例,蓝色线段表示既新增了真正例也新增了假正例。根据
AUC值的定义可知,此时的
AUC值其实就是所有红色线段和蓝色线段与
x轴围成的面积之和。观察上图可知,红色线段与
x轴围成的图形恒为矩形,蓝色线段与
x轴围成的图形恒为梯形,但是由于梯形面积公式既能算梯形面积,也能算矩形面积,所以无论是红色线段还是蓝色线段,其与
x轴围成的面积都能用梯形公式来计算,也即
21⋅(xi+1−xi)⋅(yi+yi+1)
其中,
(xi+1−xi)表示“高”,
yi表示“上底”,
yi+1表示“下底”。那么
i=1∑m−1[21⋅(xi+1−xi)⋅(yi+yi+1)]
表示的便是对所有红色线段和蓝色线段与
x轴围成的面积进行求和,此即为
AUC
2.21
ℓrank=m+m−1x+∈D+∑x−∈D−∑(I(f(x+)<f(x−))+21I(f(x+)=f(x−)))
[解析]:按照我们上述对公式(2.20)的解析思路,ℓrank可以看作是所有绿色线段和蓝色线段与y轴围成的面积之和,但是公式(2.21)很难一眼看出其面积的具体计算方式,因此我们需要将公式(2.21)进行恒等变形
ℓrank=m+m−1x+∈D+∑x−∈D−∑(I(f(x+)<f(x−))+21I(f(x+)=f(x−)))=m+m−1x+∈D+∑[x−∈D−∑I(f(x+)<f(x−))+21⋅x−∈D−∑I(f(x+)=f(x−))]=x+∈D+∑[m+1⋅m−1x−∈D−∑I(f(x+)<f(x−))+21⋅m+1⋅m−1x−∈D−∑I(f(x+)=f(x−))]=x+∈D+∑21⋅m+1⋅[m−2x−∈D−∑I(f(x+)<f(x−))+m−1x−∈D−∑I(f(x+)=f(x−))]
根据公式(2.20)中给出的ROC曲线图可知,在变动分类阈值的过程当中,如果有新增真正例,那么相应地就会增加一条绿色线段或蓝色线段,所以上式中的x+∈D+∑可以看作是在遍历所有绿色和蓝色线段,那么相应地x+∈D+∑后面的那一项便是在求绿色线段或者蓝色线段与y轴围成的面积,也即
21⋅m+1⋅[m−2x−∈D−∑I(f(x+)<f(x−))+m−1x−∈D−∑I(f(x+)=f(x−))]
同公式(2.20)中的求解思路一样,不论是绿色线段还是蓝色线段,其与y轴围成的图形面积都可以用梯形公式来进行计算,所以上式表示的依旧是一个梯形的面积求解公式。其中m+1即为梯形的“高”,中括号中的那一项便是“上底+下底”,下面我们来分别推导一下“上底”(较短的那个底)和“下底”。由于在绘制ROC曲线的过程中,每新增一个假正例时x坐标也就新增一个单位,所以对于“上底”,也就是绿色或者蓝色线段的下端点到y轴的距离,它就等于m−1乘以预测值比x+大的假正例的个数,也即
m−1x−∈D−∑I(f(x+)<f(x−))
而对于“下底”,它就等于m−1乘以预测值大于等于x+的假正例的个数,也即
m−1(x−∈D−∑I(f(x+)<f(x−))+x−∈D−∑I(f(x+)=f(x−)))