2.3 类别不平衡学习的性能评价测度
性能评价测度是用于评价分类模型“好坏”的一种量度。对于绝大多数了解分类问题的读者来讲,可能接触最多的一种性能评价测度就是分类精度(accuracy)。假设有一个具有N个样本的数据集D={(x1, y1),(x2, y2), …,(xN, yN)},其中,yi为xi的真实类别标记,则对于分类模型f,其在该数据集上的分类精度可由下式计算得到:
其中,I为指示函数,当I中等式成立时,其取值为1,而当等式不成立时,其取值为0。
从式(2-33)可以看出,所谓分类精度,实际上就是分类模型在所有样本上所预测正确个体的占比统计量。在平衡的分类问题中,采用分类精度评价模型的质量当然是毫无问题的,但若分类问题是不平衡的,这一测度将难以反映出分类模型的真实质量。不妨假设现有100个样本,其中有99个属于多数类,而另外1个来源于少数类,若存在两个分类模型f1和f2,其中前者将所有样本均判归多数类,即其分类精度为0.99,而后者则可正确预测少数类样本,但同时也误判了10个多数类样本,即其分类精度为0.90。那么,是否能根据分类精度的大小,直接得出模型f1比f2质量更优的结论呢?显然是不能的,因为前者误判了全部的少数类样本,导致所训练的分类模型可能毫无价值,而后者虽然误判了一部分多数类样本,但正确预测了唯一的少数类样本,从而在不同类样本的分类精度上达到了近似平衡,而这种平衡可能是更有意义的。
既然在类别不平衡问题上,分类精度不是一种可取的测度,那么,是否有更合适的性能度量指标呢?在此,首先需要为读者展示一张表格,即分类结果的混淆矩阵(confusion matrix),如表2-1所示。
表2-1 分类结果的混淆矩阵
在表2-1中,TP和TN分别表示原本就是正类/负类,也确实被预测为正类/负类的样本数量;FP及FN则分别表示样本的真实类标为负类/正类,但却被预测为正类/负类的样本数量。显然,TP+TN表示预测正确的样本数,而FP+FN则表示预测错误的样本数,TP+TN+FP+FN表示样本总数。进一步,分类精度可由这4个变量直接计算得出:
此外,我们也可采用这4个变量计算出其他一些性能测度,如查准率Precision、查全率Recall(真正率TPR)及真负率TNR等,这些指标可通过如下各式计算得到:
其中,TPR与TNR在医学领域中分别被称为“敏感性”(sensitivity)与“特异性”(specificity)测度。显然,查准率Precision与查全率Recall是一对矛盾的度量指标。一般而言,当查准率高时,查全率往往较低,而当查全率高时,查准率又往往偏低[2]。当然,最理想状况是二者的性能大致相当。为检测二者的平衡关系,可采用一种称为F-measure的性能评价测度,计算公式如下:
另外,我们也注意到真正率TPR及真负率TNR事实上分别表示了正类与负类各自的分类精度,故可采用一种称为G-mean的测度来检测这二者的平衡关系,其计算公式如下:
显然,G-mean测度计算了两类样本预测精度的几何均值,若其中一个较大,而另一个较小,则G-mean测度值必然偏小,只有当二者均值较接近时,G-mean测度才可达到峰值。
前面的讨论仅考虑了二分类问题,而未考虑多分类问题。事实上,在多分类问题中,F-measure及G-mean测度只需通过简单转换即可使用。其中,在多分类问题中,F-measure测度被转换为了一个称为F-score的测度[15],其计算公式如下:
其中,M为类别个数。显然,F-score测度是将多分类问题转化为多个二分类问题,并在每一个二分类问题上分别计算F-measure测度,最后再求其均值而得。
而在多分类问题上,G-mean测度也可通过下式计算得到:
显然,在多分类问题上,G-mean测度仍然反映了各类样本分类精度的几何均值。
在类别不平衡学习任务中,F-measure及G-mean是较为常用的两种性能评价测度。那么,是不是就可以说它们是完全没有缺陷的了呢?答案当然是否定的。事实上,Batuwita和Palade[16]在进行生物信息学研究时发现,上述测度并非尽善尽美。他们根据实际需要将不平衡分类问题分成了两大类:第1类是希望尽可能地提升TPR的值,而忽略TNR测度值的大小;第2类则希望在提升TPR值的同时,尽可能不大幅降低TNR测度的值。针对第2类需求,文献[16]提出了一种修正的G-mean测度:AGm测度,该测度的具体计算公式如下:
其中,Nn表示多数类样本在全部样本中的占比。
在类别不平衡学习问题中,另一种常用的性能评价测度是“受控者操纵特征曲线下的面积”(area under the receiver operating characteristic curve, AUC)[17]。所谓受控者操纵特征曲线(receiver operating characteristic curve, ROC),是根据每个样本的决策输出值进行“排序”而构成的曲线[18]。众所周知,很多分类模型均可对样本产生实值或概率输出,如朴素贝叶斯分类器的后验概率、神经网络的决策输出值、集成分类器的投票比等。通常的做法是对这些输出值按大小关系进行排序,并找到一个对应的截断阈值,小于该阈值的属于一类,大于该阈值的属于另一类。在实际应用中,若截断阈值找得不合理可能会导致分类结果不理想,但它并不会影响到样本的排序关系。实际上,这种排序关系也可用于评价分类模型的性能。具体而言,ROC曲线是由每个样本的真正率TPR及假正率FPR所刻画的,其中假正率的计算公式如下:
ROC曲线的纵轴表示真正率,横轴表示假正率,曲线上的点从原点开始按照决策值从小到大排列而成。图2-11给出了一个ROC曲线的例子。
图2-11 ROC曲线示例图
AUC测度为ROC曲线下的面积,如图2-11所示的阴影面积,实际上,它是由多个梯形的面积累加而成。对于一个完全随机猜测的分类模型而言,其ROC曲线应为连接原点至右上角顶点的一条直线段,其AUC测度值为0.5。而在样本完全可分状态下,即一类样本的排序均在另一类样本之前或之后,则其ROC曲线应是纵坐标取值为1,且与横轴完全平行的直线段,其AUC测度值为1。通常而言,在同一样本集上,若一个分类模型的AUC测度值越高,则表明该模型的质量越好。
此外,特别需要说明的是,ROC曲线在设计之初仅考虑了二分类问题,对于多分类问题,可以将每类均视作正类刻画一条ROC曲线,取各条ROC曲线的AUC测度均值作为最终的AUC测度值即可,通常将该测度称为MAUC测度。
在类别不平衡学习问题中,F-measure, G-mean及AUC是最为常用的三种性能评价测度,故在本书后续的实验环节,将重点采用这三种测度来评价各类算法的质量。