分类和回归模型常用的性能评价指标

在预测任务中,给定样例集D={(x1,y1),(x2,y2),,(xm,ym)}D=\lbrace(x_1,y_1),(x_2,y_2),\ldots,(x_m,y_m)\rbrace,其中yiy_i是示例xix_i的真实标记,mm表示样例数量,m+m^+mm^-分别表示正例和反例的数量。

回归任务

均方误差(mean squared error)

E(f;D)=1mi=0m(f(xi)yi)2 E(f;D)=\frac{1}{m}\sum_{i=0}^{m}{(f(x_i)-y_i)^2}

分类任务

错误率

分类错误的样本数占总样本数的比例。
E(f;D)=1mi=0mI(f(xi)yi) E(f;D)=\frac{1}{m}\sum_{i=0}^{m}{ \mathbb{I} (f(x_i)\neq y_i)}

精度

分类正确的样本数占总样本数的比例。
acc(f;D)=1mi=0mI(f(xi)=yi)=1E(f;D) acc(f;D)=\frac{1}{m}\sum_{i=0}^{m}{ \mathbb{I} (f(x_i)= y_i)}=1-E(f;D)

查准率、查全率和P-R曲线

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(ture positive)、假正例(false positive)、真反例(ture negative)、假反例(false negative)四种情形,分别用TPTPFPFPTNTNFNFN表示,这4者之和为样例总数。分类结果的混淆矩阵(confusion matrix)如下表所示:

分类和回归模型常用的性能评价指标

查准率(precision):
P=TPTP+FP P=\frac{TP}{TP+FP}
查全率(recall):

又称召回率,所有真正例中有多少被查出来了。
R=TPTP+FN R=\frac{TP}{TP+FN}
查准率和查全率是一对矛盾的度量,一般来说,查准率高时,查全率往往较低,反之亦然。例如,将所有的样例都选上,则查全率为1,查准率较低,相反,为避免选出假正例,即提高查准率,只挑选最有把握的样例,则会漏掉很多真正例,使得查全率较低。

P-R曲线

利用学习器预测结果(样例为正例的概率)对所有样例进行排序,排在前面的是学习器认为最可能是正例的样本。按照这个顺序逐个将样本选出作为正例进行预测,则每次可以计算一组查准率和查全率,将查全率作为横轴,查准率作为纵轴哦,可以绘制得到P-R曲线,如下图所示。

分类和回归模型常用的性能评价指标

图中曲线是近似处理过的,真实的P-R曲线肯定会过(0,0)点,在一开始,所有样例都判为反例时,TP=0TP=0,则PPRR均为0;随着逐个将学习器认为是正例概率最大的样例预测为正例,FPFP接近于0,FNFN非常的,P会接近1,R会接近0(mm足够大);可以预见,逐个将样本预测为正例,被预测为正例的样例逐个增多,R必然单调增大,同时,P会曲折下降;最后,当所有真正例都被预测为正例时,R=1R=1,此时PP较小并逐渐接近于m+m\frac{m^+}{m}

P-R曲线模型性能判断规则

  • 若A曲线包住B曲线(无交叉),则模型A优于模型B;

  • 对于曲线有交叉的模型,P-R曲线下面积大者性能更好;

    面积计算复杂,可通过判断平衡点来替代;

    平衡点(P=R处)处值大者性能更好;

F1\bf F_1度量
F1=2×P×RP+R=2×TPm+TPTN F1=\frac{2\times P\times R}{P+R}=\frac{2\times TP}{m+TP-TN}
F1F_1是基于查准率PP与查全率RR的调和平均,即
1F1=12(1P+1R) \frac{1}{F_1}=\frac{1}{2}(\frac{1}{P}+\frac{1}{R})

Fβ\bf F_\beta度量
Fβ=(1+β2)×P×R(β2×P)+R F_\beta=\frac{(1+\beta^2)\times P\times R}{(\beta^2\times P)+R}
其中,β(>0)\beta(>0)代表了查准率PP和查全率RR的相对重要性,β=1\beta=1时退化为标准的F1F_1β>1\beta>1时查全率有更大影响;β<1\beta<1时查准率有更大影响。

FβF_\beta是基于查准率PP与查全率RR的加权调和平均,即
1Fβ=11+β2(1P+β2R) \frac{1}{F_\beta}=\frac{1}{1+\beta^2}(\frac{1}{P}+\frac{\beta^2}{R})

1Fβ=11+β21P+β21+β21R \frac{1}{F_\beta}=\frac{1}{1+\beta^2}\frac{1}{P}+\frac{\beta^2}{1+\beta^2}\frac{1}{R}

对于nn分类问题有以下几个评价指标:

宏查准率
macroP=1ni=1nPi macro-P=\frac{1}{n}\sum_{i=1}^{n}{P_i}
其中,PiP_i表示学习器对第ii类样例预测结果的查准率。

宏查全率
macroR=1ni=1nRi macro-R=\frac{1}{n}\sum_{i=1}^{n}{R_i}
其中,RiR_i表示学习器对第ii类样例预测结果的查全率。

F1\bf F_1
macroF1=2×macroP×macroRmacroP+macroR macro-F_1=\frac{2\times macro-P\times macro-R}{macro-P+macro-R}
微查准率
microP=TPTP+FP micro-P=\frac{\overline{TP}}{\overline{TP}+\overline{FP}}
其中,TP\overline{TP}FP\overline{FP}为学习器对各类样例预测结果的真正例和假正例的平均数量。

微查全率
microR=TPTP+FN micro-R=\frac{\overline{TP}}{\overline{TP}+\overline{FN}}
其中,TP\overline{TP}FN\overline{FN}为学习器对各类样例预测结果的真正例和假反例的平均数量。

F1\bf F_1
microF1=2×microP×microRmicroP+microR micro-F_1=\frac{2\times micro-P\times micro-R}{micro-P+micro-R}

ROC与AUC

真正例率
TPR=TPTP+FN TPR=\frac{TP}{TP+FN}
真正例率(True Positive Rate,TPR),表示真正例在所有正例中的比例。

真正例率与查准率RR相等。

假正例率
FPR=FPTN+FP FPR=\frac{FP}{TN+FP}
假正例率(False Positive Rate,FPR),表示假正例在所有反例中的比例。

ROC曲线

与绘制P-R曲线类似,利用学习器预测结果(样例为正例的概率)对所有样例进行排序,排在前面的是学习器认为最可能是正例的样本。按照这个顺序逐个将样本选出作为正例进行预测,则每次可以计算一组真正率和假正率,将假正例率作为横轴,真正例率作为纵轴,可以得到ROC曲线,如下图所示:

分类和回归模型常用的性能评价指标

如上图所示,(a)为ROC曲线示意图,对角线(TPR=FPRTPR=FPR)对应“随机猜想”模型,(0,1)点对应于将所有正例排在所有反例之前的“理想模型”。

实际情况中,样本是有限个,只能绘制处(b)中所示的近似ROC曲线,在一开始,所有样例都判为反例时,TP=FP=0TP=FP=0,则TPR=FPR=0TPR=FPR=0;随着逐个将学习器认为是正例概率最大的样例预测为正例,TPRTPRFPRFPR分母不变,即正例和反例的各自的总数不变,TPTPFPFP均逐渐增大;最后,当学习器将所有样例都判为正例时,所有的正例均被判为了真正例,所有的反例均被判为了假正例,此时TPR=FPR=1TPR=FPR=1

ROC曲线模型性能判断规则

  • 若A曲线包住B曲线(无交叉),则模型A优于模型B;
  • 对于曲线有交叉的模型,ROC曲线下面积,即AUC(Area Under ROC Curve)大者性能更好;

AUC

AUC(Area Under ROC Curve),即ROC曲线下面积。

假定ROC曲线坐标为{(x1,y1),(x2,y2),,(xm,ym)}\lbrace (x_1,y_1),(x_2,y_2),\ldots,(x_m,y_m) \rbrace,其中,x1=y1=0xm=ym=1x_1=y_1=0,x_m=y_m=1,AUC可估算为:
AUC=12i=1m(xi+1xi)(yi+yi+1) AUC=\frac{1}{2}\sum_{i=1}^{m}{(x_{i+1}-x_i)\cdot(y_i+y_{i+1})}
可以看出,AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密联系。

排序“损失”(loss):
rank=1m+mx+D+xD(I(f(x+)<f(x))+12I(f(x+)=f(x))) \ell_{rank}=\frac{1}{m^+m^-}\sum_{x^+\in D^+}{\sum_{x^-\in D^-}{\left(\mathbb{I}\left(f(x^+)<f(x^-)\right)+\frac{1}{2}\mathbb{I}\left(f(x^+)=f(x^-)\right)\right)}}
考虑每一对正、反例,若正例的预测值小于反例,则记一个“罚分”,若相等,则记0.5罚分。可以看出,rank\ell_{rank}对应的是ROC曲线之上的面积,因此有
AUC=1rank AUC=1-\ell_{rank}

代价敏感错误率与代价曲线

对于不同分类分错造成的损失往往不同,例如,将医生病患错误诊为无病,将正常人误诊为病患,显然将病患判误诊为无病的后果更严重,可能使病人丧失了最佳的治疗时机。因此,可以为错误赋予“非均等代价”(unequal cost)。

二分类任务的“代价矩阵”(cost matrix)如下表所示,其中,costijcost_{ij}表示将第ii类样本预测为第jj类样本的代价。一般来说,costii=0cost_{ii}=0

分类和回归模型常用的性能评价指标

“代价敏感”(cost-sensitive)错误率
E(f;D;cost)=1m(xiD+I(f(xi)yi)×cost01+xiDI(f(xi)yi)×cost10) E(f;D;cost)=\frac{1}{m}\left(\sum_{x_i\in D^+}{\mathbb{I}\left(f(x_i)\neq y_i \right)\times cost_{01}} + \sum_{x_i\in D^-}{\mathbb{I}\left(f(x_i)\neq y_i \right)\times cost_{10}}\right)
代价曲线

在非均等代价下,“代价曲线”(cost curve)可以直接反映出学习器的期望总体代价,而ROC曲线不能。代价曲线的横轴为正例概率代价,纵轴为归一化代价,公式及示意图如下所示。

正例概率代价:
P(+)cost=p×cost01p×cost01+(1p)×cost10 P(+)cost=\frac{p\times cost_{01}}{p\times cost_{01}+(1-p)\times cost_{10}}
归一化代价:
costnorm=FNR×p×cost01+FPR×(1p)×cost10p×cost01+(1p)×cost10 cost_{norm}=\frac{FNR\times p \times cost_{01}+ FPR\times(1-p)\times cost_{10}}{p\times cost_{01}+(1-p)\times cost_{10}}
其中,FNRFNR为假反例率,FPRFPR为假正例率,
FNR=FNFN+TP=1TPR FNR=\frac{FN}{FN+TP}=1-TPR
代价曲线的绘制比较简单,ROC曲线上的每一点都对应代价曲线中的一个线段,设ROC曲线上点坐标为(FPR,TPR)(FPR,TPR),可以计算得到FNRFNR,然后在代价平面绘制一条从(0,FPR)(0,FPR)(1,FNR)(1,FNR)的线段,线段下的面积即表示了该条件下的期望总体代价,如此绘制所有线段,取所有线段下界的交集,围城的面积即在所有条件下学习器的总往总体代价,如下图所示。

分类和回归模型常用的性能评价指标

代价曲线模型性能判断规则

  • 若A曲线包住B曲线(无交叉),则B曲线性能优于A曲线;
  • 对于曲线有交叉的模型,代价曲线下面积,即期望总体代价小者性能更好;