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

在预测任务中,给定样例集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , , ( x m , y m ) } D=\lbrace(x_1,y_1),(x_2,y_2),\ldots,(x_m,y_m)\rbrace ,其中 y i y_i 是示例 x i x_i 的真实标记, m m 表示样例数量, m + m^+ m m^- 分别表示正例和反例的数量。

回归任务

均方误差(mean squared error)

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

均方根误差(Root Mean Squared Error, RMSE)

E ( f ; D ) = 1 m i = 0 m ( f ( x i ) y i ) 2 E(f;D)=\sqrt{\frac{1}{m}\sum_{i=0}^{m}{(f(x_i)-y_i)^2}}

平均绝对百分比误差(Mean Absolute Percent Error, MAPE)

E ( f ; D ) = 1 m i = 0 m y i f ( x i ) y i E(f;D)=\frac{1}{m}\sum_{i=0}^{m}{\left|\frac{y_i-f(x_i)}{y_i} \right|}

MAPE相比于MSE和RMSE,不易受个别离群点影响,鲁棒性更强。

分类任务

错误率

分类错误的样本数占总样本数的比例。
E ( f ; D ) = 1 m i = 0 m I ( f ( x i ) y i ) E(f;D)=\frac{1}{m}\sum_{i=0}^{m}{ \mathbb{I} (f(x_i)\neq y_i)}
其中, I ( ) \mathbb{I}(\cdot) 为指示函数,在 \cdot 为真时取1,否则取0。

精度(Precision)

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

平均精度(Average Precision, AP)

每个类别下的样本准确率的算术平均。
a c c ( f ; D ) = 1 2 ( i = 0 m I ( f ( x i ) = y i ) I ( y i = 1 ) m + + i = 0 m I ( f ( x i ) = y i ) I ( y i = 1 ) m ) acc(f;D)=\frac{1}{2}\left(\frac{\sum_{i=0}^{m}{ \mathbb{I} (f(x_i)= y_i)\cdot\mathbb{I} (y_i=1)}}{m^+}+\frac{\sum_{i=0}^{m}{ \mathbb{I} (f(x_i)= y_i)\cdot\mathbb{I} (y_i=-1)}}{m^-} \right)
适用于测试样本类别不均衡情况,同等重视各类别样本的准确率,防止占比大的类别对结果影响更大。

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

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

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

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

P-R曲线

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

img

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

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

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

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

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

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

F 1 \bf F_1 度量
F 1 = 2 × P × R P + R = 2 × T P m + T P T N F1=\frac{2\times P\times R}{P+R}=\frac{2\times TP}{m+TP-TN}
F 1 F_1 是基于查准率 P P 与查全率 R R 的调和平均,即
1 F 1 = 1 2 ( 1 P + 1 R ) \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) 代表了查准率 P P 和查全率 R R 的相对重要性, β = 1 \beta=1 时退化为标准的 F 1 F_1 β > 1 \beta>1 时查全率有更大影响; β < 1 \beta<1 时查准率有更大影响。

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

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

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

宏查准率
m a c r o P = 1 n i = 1 n P i macro-P=\frac{1}{n}\sum_{i=1}^{n}{P_i}
其中, P i P_i 表示学习器对第 i i 类样例预测结果的查准率。

宏查全率
m a c r o R = 1 n i = 1 n R i macro-R=\frac{1}{n}\sum_{i=1}^{n}{R_i}
其中, R i R_i 表示学习器对第 i i 类样例预测结果的查全率。

F 1 \bf F_1
m a c r o F 1 = 2 × m a c r o P × m a c r o R m a c r o P + m a c r o R macro-F_1=\frac{2\times macro-P\times macro-R}{macro-P+macro-R}
微查准率
m i c r o P = T P T P + F P micro-P=\frac{\overline{TP}}{\overline{TP}+\overline{FP}}
其中, T P \overline{TP} F P \overline{FP} 为学习器对各类样例预测结果的真正例和假正例的平均数量。

微查全率
m i c r o R = T P T P + F N micro-R=\frac{\overline{TP}}{\overline{TP}+\overline{FN}}
其中, T P \overline{TP} F N \overline{FN} 为学习器对各类样例预测结果的真正例和假反例的平均数量。

F 1 \bf F_1
m i c r o F 1 = 2 × m i c r o P × m i c r o R m i c r o P + m i c r o R micro-F_1=\frac{2\times micro-P\times micro-R}{micro-P+micro-R}

ROC与AUC

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

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

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

ROC曲线

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

img

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

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

ROC曲线模型性能判断规则

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

AUC

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

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

排序“损失”(loss):
r a n k = 1 m + m x + D + x D ( I ( f ( x + ) < f ( x ) ) + 1 2 I ( 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罚分。可以看出, r a n k \ell_{rank} 对应的是ROC曲线之上的面积,因此有
A U C = 1 r a n k AUC=1-\ell_{rank}

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

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

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

img

“代价敏感”(cost-sensitive)错误率
E ( f ; D ; c o s t ) = 1 m ( x i D + I ( f ( x i ) y i ) × c o s t 01 + x i D I ( f ( x i ) y i ) × c o s t 10 ) 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 ( + ) c o s t = p × c o s t 01 p × c o s t 01 + ( 1 p ) × c o s t 10 P(+)cost=\frac{p\times cost_{01}}{p\times cost_{01}+(1-p)\times cost_{10}}
归一化代价:
c o s t n o r m = F N R × p × c o s t 01 + F P R × ( 1 p ) × c o s t 10 p × c o s t 01 + ( 1 p ) × c o s t 10 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}}
其中, F N R FNR 为假反例率, F P R FPR 为假正例率,
F N R = F N F N + T P = 1 T P R FNR=\frac{FN}{FN+TP}=1-TPR
代价曲线的绘制比较简单,ROC曲线上的每一点都对应代价曲线中的一个线段,设ROC曲线上点坐标为 ( F P R , T P R ) (FPR,TPR) ,可以计算得到 F N R FNR ,然后在代价平面绘制一条从 ( 0 , F P R ) (0,FPR) ( 1 , F N R ) (1,FNR) 的线段,线段下的面积即表示了该条件下的期望总体代价,如此绘制所有线段,取所有线段下界的交集,围城的面积即在所有条件下学习器的总往总体代价,如下图所示。

img

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

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

猜你喜欢

转载自blog.csdn.net/kuaizi_sophia/article/details/84942307