深入理解机器学习——类别不平衡学习(Imbalanced Learning):性能评价测度

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

性能评价测度是用于评价分类模型“好坏”的一种量度。对于绝大多数了解分类问题的读者来讲,可能接触最多的一种性能评价测度就是分类准确率(Accuracy)。假设有一个具有 m m m个样本的数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x m , y m ) } D=\{(x_1, y_1), (x_2, y_2), \cdots, (x_m, y_m)\} D={ (x1,y1),(x2,y2),,(xm,ym)},其中 y i y_i yi是示例 x i x_i xi的真实标记,则对于分类模型 f f f,其在该数据集上的分类准确率可由下式计算得到:
Accuracy ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) = y i ) \text{Accuracy}(f;D)=\frac{1}{m}\sum_{i=1}^m\mathbb{I}(f(x_i)= y_i) Accuracy(f;D)=m1i=1mI(f(xi)=yi)

其中, I \mathbb{I} I为指示函数,当 I \mathbb{I} I中等式成立时,其取值为1,而当等式不成立时,其取值为0。

从上式可以看出,所谓分类准确率,实际上就是分类模型在所有样本上所预测正确个体的占比统计量。在平衡的分类问题中,采用分类准确率评价模型的质量当然是毫无问题的,但若分类问题是不平衡的,这一测度将难以反映出分类模型的真实质量。不妨假设现有100个样本,其中有99个属于多数类,而另外1个来源于少数类,若存在两个分类模型 f 1 f_1 f1 f 2 f_2 f2,其中前者将所有样本均判归多数类,即其分类精度为0.99,而后者则可正确预测少数类样本,但同时也误判了10个多数类样本,即其分类精度为0.90。那么,是否能根据分类准确率的大小,直接得出模型 f 1 f_1 f1 f 2 f_2 f2质量更优的结论呢?显然是不能的,因为前者误判了全部的少数类样本,导致所训练的分类模型可能毫无价值,而后者虽然误判了一部分多数类样本,但正确预测了唯一的少数类样本,从而在不同类样本的分类精度上达到了近似平衡,而这种平衡可能是更有意义的。

既然在类别不平衡问题上,分类准确率不是一种可取的测度,那么,是否有更合适的性能度量指标呢?在此,首先需要为读者展示一张表格,即分类结果的混淆矩阵(Confusion Matrix),如下图所示。
混淆矩阵
在上图中,TP和TN分别表示原本就是正类/负类,也确实被预测为正类/负类的样本数量;FP及FN则分别表示样本的真实类标为负类/正类,但却被预测为正类/负类的样本数量。显然,TP+TN表示预测正确的样本数,而FP+FN则表示预测错误的样本数,TP+TN+FP+FN表示样本总数。进一步,分类准确率可由这4个变量直接计算得出:
Accuracy ( f ; D ) = T P + T N T P + T N + F P + F N \text{Accuracy}(f;D)=\frac{TP+TN}{TP+TN+FP+FN} Accuracy(f;D)=TP+TN+FP+FNTP+TN

此外,我们也可采用这4个变量计算出其他一些性能测度,如精度/查准率(Precision)、召回率/查全率/真正率(Recall, TPR)及真负率TNR等,这些指标可通过如下各式计算得到:
Precision = T P T P + F P Recall = TPR = T P T P + F N TNR = T N T N + F P \text{Precision}=\frac{TP}{TP+FP}\\\quad\\\text{Recall}=\text{TPR}=\frac{TP}{TP+FN}\\\quad\\\text{TNR}=\frac{TN}{TN+FP} Precision=TP+FPTPRecall=TPR=TP+FNTPTNR=TN+FPTN

其中,TPR与TNR在医学领域中分别被称为敏感性(Sensitivity)与特异性(Specificity)测度。显然,精度/查准率与召回率/查全率是一对矛盾的度量指标。一般而言,当查准率高时,查全率往往较低,而当查全率高时,查准率又往往偏低。当然,最理想状况是二者的性能大致相当。为检测二者的平衡关系,可采用一种称为F-measure的性能评价测度,计算公式如下:
F 1 = 2 × Precision × Recall Precision + Recall = 2 × T P 样例总数 + T P − T N F1=\frac{2\times\text{Precision}\times\text{Recall}}{\text{Precision}+\text{Recall}}=\frac{2\times TP}{\text{样例总数}+TP-TN} F1=Precision+Recall2×Precision×Recall=样例总数+TPTN2×TP

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

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

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

其中, M M M为类别个数。显然,F-score测度是将多分类问题转化为多个二分类问题,并在每一个二分类问题上分别计算F-measure测度,最后再求其均值而得。而在多分类问题上,G-mean测度也可通过下式计算得到:
G-mean = ( ∏ i = 1 M Accuracy ) 1 M \text{G-mean}=(\prod_{i=1}^M\text{Accuracy})^{\frac{1}{M}} G-mean=(i=1MAccuracy)M1

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

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

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

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是最为常用的三种性能评价测度。

猜你喜欢

转载自blog.csdn.net/hy592070616/article/details/124543038
今日推荐