相关文章:
· 机器学习模型的性能度量

性能评价测度是用于评价分类模型“好坏”的一种量度。对于绝大多数了解分类问题的读者来讲,可能接触最多的一种性能评价测度就是分类准确率(Accuracy)。假设有一个具有m mm个样本的数据集D={(x1,y1),(x2,y2),,(xm,ym)},其中y i 是示例x i 的真实标记,则对于分类模型f,其在该数据集上的分类准确率可由下式计算得到:

其中,II为指示函数,当II中等式成立时,其取值为1,而当等式不成立时,其取值为0。
从上式可以看出,所谓分类准确率,实际上就是分类模型在所有样本上所预测正确个体的占比统计量。在平衡的分类问题中,采用分类准确率评价模型的质量当然是毫无问题的,但若分类问题是不平衡的,这一测度将难以反映出分类模型的真实质量。不妨假设现有100个样本,其中有99个属于多数类,而另外1个来源于少数类,若存在两个分类模型f 1和f 2 ,其中前者将所有样本均判归多数类,即其分类精度为0.99,而后者则可正确预测少数类样本,但同时也误判了10个多数类样本,即其分类精度为0.90。那么,是否能根据分类准确率的大小,直接得出模型f 1比f 2质量更优的结论呢?显然是不能的,因为前者误判了全部的少数类样本,导致所训练的分类模型可能毫无价值,而后者虽然误判了一部分多数类样本,但正确预测了唯一的少数类样本,从而在不同类样本的分类精度上达到了近似平衡,而这种平衡可能是更有意义的。
既然在类别不平衡问题上,分类准确率不是一种可取的测度,那么,是否有更合适的性能度量指标呢?在此,首先需要为读者展示一张表格,即分类结果的混淆矩阵(Confusion Matrix),如下图所示。

混淆矩阵

在上图中,TP和TN分别表示原本就是正类/负类,也确实被预测为正类/负类的样本数量;FP及FN则分别表示样本的真实类标为负类/正类,但却被预测为正类/负类的样本数量。显然,TP+TN表示预测正确的样本数,而FP+FN则表示预测错误的样本数,TP+TN+FP+FN表示样本总数。进一步,分类准确率可由这4个变量直接计算得出

此外,我们也可采用这4个变量计算出其他一些性能测度,如精度/查准率(Precision)、召回率/查全率/真正率(Recall, TPR)及真负率TNR等,这些指标可通过如下各式计算得到:

其中,TPR与TNR在医学领域中分别被称为敏感性(Sensitivity)与特异性(Specificity)测度。显然,精度/查准率与召回率/查全率是一对矛盾的度量指标。一般而言,当查准率高时,查全率往往较低,而当查全率高时,查准率又往往偏低。当然,最理想状况是二者的性能大致相当。为检测二者的平衡关系,可采用一种称为F-measure的性能评价测度,计算公式如下:

另外,我们也注意到真正率TPR及真负率TNR事实上分别表示了正类与负类各自的分类精度,故可采用一种称为G-mean的测度来检测这二者的平衡关系,其计算公式如下:

显然,G-mean测度计算了两类样本预测精度的几何均值,若其中一个较大,而另一个较小,则G-mean测度值必然偏小,只有当二者均值较接近时,G-mean测度才可达到峰值。

前面的讨论仅考虑了二分类问题,而未考虑多分类问题。事实上,在多分类问题中,F-measure及G-mean测度只需通过简单转换即可使用。其中,在多分类问题中,F-measure测度被转换为了一个称为F-score的测度,其计算公式如下:

显然,在多分类问题上,G-mean测度仍然反映了各类样本分类精度的几何均值。

在类别不平衡学习任务中,F-measure及G-mean是较为常用的两种性能评价测度。那么,是不是就可以说它们是完全没有缺陷的了呢?答案当然是否定的。事实上,Batuwita和Palade在进行生物信息学研究时发现,上述测度并非尽善尽美。他们根据实际需要将不平衡分类问题分成了两大类:第1类是希望尽可能地提升TPR的值,而忽略TNR测度值的大小;第2类则希望在提升TPR值的同时,尽可能不大幅降低TNR测度的值。针对第2类需求,Batuwita和Palade提出了一种修正的G-mean测度:AGm测度,该测度的具体计算公式如下:

其中,N n 表示多数类样本在全部样本中的占比。在类别不平衡学习问题中,另一种常用的性能评价测度是“受控者操纵特征曲线下的面积”(Area Underthe Receiver Pperating Characteristic curve, AUC)。所谓受控者操纵特征曲线(Receiver Operatingcharacteristic Curve, ROC),是根据每个样本的决策输出值进行“排序”而构成的曲线。众所周知,很多分类模型均可对样本产生实值或概率输出,如朴素贝叶斯分类器的后验概率、神经网络的决策输出值、集成分类器的投票比等。通常的做法是对这些输出值按大小关系进行排序,并找到一个对应的截断阈值,小于该阈值的属于一类,大于该阈值的属于另一类。在实际应用中,若截断阈值找得不合理可能会导致分类结果不理想,但它并不会影响到样本的排序关系。实际上,这种排序关系也可用于评价分类模型的性能。具体而言,ROC曲线是由每个样本的真正率TPR及假正率FPR所刻画的,其中假正率的计算公式如下:

ROC曲线的纵轴表示真正率,横轴表示假正率,曲线上的点从原点开始按照决策值从小到大排列而成。下图给出了一个ROC曲线的例子。

ROC曲线

AUC测度为ROC曲线下的面积,如上图所示的阴影面积,实际上,它是由多个梯形的面积累加而成。对于一个完全随机猜测的分类模型而言,其ROC曲线应为连接原点至右上角顶点的一条直线段,其AUC测度值为0.5。而在样本完全可分状态下,即一类样本的排序均在另一类样本之前或之后,则其ROC曲线应是纵坐标取值为1,且与横轴完全平行的直线段,其AUC测度值为1。通常而言,在同一样本集上,若一个分类模型的AUC测度值越高,则表明该模型的质量越好。

此外,特别需要说明的是,ROC曲线在设计之初仅考虑了二分类问题,对于多分类问题,可以将每类均视作正类刻画一条ROC曲线,取各条ROC曲线的AUC测度均值作为最终的AUC测度值即可,通常将该测度称为MAUC测度。在类别不平衡学习问题中,F-measure, G-mean及AUC是最为常用的三种性能评价测度。