分类算法的性能度量是指对分类算法的泛化性能评估,是衡量模型泛化能力的评价标准,泛化性能评价指标可以定量的评价泛化性能优劣。
常用的一些指标有准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1-score等。
下面以二分类问题为例介绍分类算法的性能评价指标。
我们以西瓜好坏的预测为例,正例:好瓜,反例:坏瓜,对于二分类问题,将样本依据真实的类别和分类器的预测列别进行组合,可分为四种情况:
TP(true positive):正确地预测为正例的样本数,将正例预测为正例的样本数;
FN(false negative):错误地预测为反例的样本数,将正例预测为反例的样本数;
FP(false positive):错误地预测为正例的样本数,将反例预测为正例的样本数;
TN(true nagative):正确地预测为反例的样本数,将反例预测为反例的样本数;
true、false表示预测结果的正确与错误,positive、negative表示实际样本的正例与反例。
错误率(error rate)是指分类错误的样本数占总样本数的比例;
e r r o r r a t e = F N + F P T P + F N + F P + T N error rate = \frac{FN+FP}{TP+FN+FP+TN} errorrate=TP+FN+FP+TNFN+FP
准确率是指分类正确的样本数占总样本数的比例。
a c c u a r c y = T P + T N T P + F N + F P + T N accuarcy = \frac{TP+TN}{TP+FN+FP+TN} accuarcy=TP+FN+FP+TNTP+TN
查准率,也叫精确率(precision),预测命中率等。
表示所有预测为正例的样本中实际是正例的样本数所占的比例,即正确地预测为正例的样本数 ÷ \div ÷预测为正例的样本总数。
P = T P T P + F P P = \frac{TP}{TP + FP} P=TP+FPTP
查全率,也叫召回率(recall),预测召回率等。
表示所有实际正例的样本中预测为正例的样本数所占的比例,即正确地预测为正例的样本数 ÷ \div ÷实际正例的样本总数。
R = T P T P + F N R = \frac{TP}{TP + FN} R=TP+FNTP
F1-score是基于查准率与查全率的调和平均(harmonic mean)。
F 1 = 2 × P × R P + R F1 = \frac{2 \times P \times R}{P + R} F1=P+R2×P×R
假设多分类类别数目为 n n n。
多分类场景下度量查准率与查全率时,考虑将多分类问题简化为二分类问题即可得到类似二分类的混淆矩阵。
例如,当我们观察某个类别 i i i时,将其余的 n − i n-i n−i个类别看作是二分类中的反例,这样我们就可以计算出类别 i i i的 T P i 、 F N i 、 F P i 、 T N i TP_i、FN_i、FP_i、TN_i TPi、FNi、FPi、TNi。
通过上述的方法,我们可以得到 n n n个二分类的混淆矩阵,对 n n n个二分类的混淆矩阵进行计算可得到准确率、错误率、查准率和查全率。
这里考虑多分类时,由于我们之前定义的混淆矩阵是按照 n n n个二分类进行计算,得到每个类别 i i i的 T P i 、 F N i 、 F P i 、 T N i TP_i、FN_i、FP_i、TN_i TPi、FNi、FPi、TNi。
举个例子,有四个分类,混淆矩阵为:
预测分类 | 1 | 2 | 3 | 4 | |
---|---|---|---|---|---|
真 | 1 | T 1 P 1 T_1P_1 T1P1 | F 1 P 2 F_1P_2 F1P2 | F 1 P 3 F_1P_3 F1P3 | F 1 P 4 F_1P_4 F1P4 |
实 | 2 | F 2 P 1 F_2P_1 F2P1 | T 2 P 2 T_2P_2 T2P2 | F 2 P 3 F_2P_3 F2P3 | F 2 P 4 F_2P_4 F2P4 |
分 | 3 | F 3 P 1 F_3P_1 F3P1 | F 3 P 2 F_3P_2 F3P2 | T 3 P 3 T_3P_3 T3P3 | F 3 P 4 F_3P_4 F3P4 |
类 | 4 | F 4 P 1 F_4P_1 F4P1 | F 4 P 2 F_4P_2 F4P2 | F 4 P 3 F_4P_3 F4P3 | T 4 P 4 T_4P_4 T4P4 |
其中, F j P i F_jP_i FjPi可读作将真实的分类 j j j错误地预测为分类 i i i,则
F P i = ∑ j = 1 , j ≠ i 4 F j P i FP_i = \displaystyle \sum_{j=1,\: j\neq i}^4{F_jP_i} FPi=j=1,j=i∑4FjPi;
T P i = T i P i TP_i=T_iP_i TPi=TiPi读作将真实的分类 i i i正确地预测为分类 i i i。
F N i FN_i FNi读作:错误地将真实分类 i i i预测为其他分类; F N i = ∑ j = 1 , j ≠ i n F i P j FN_i = \displaystyle \sum_{j=1,\: j\neq i}^n{F_iP_j} FNi=j=1,j=i∑nFiPj。
此时,如果混淆矩阵为正方形时,样本总数为 ∑ i = 1 n T P i + F P i \displaystyle \sum_{i=1}^n{TP_i+FP_i} i=1∑nTPi+FPi,也等于 ∑ i = 1 n T P i + F N i \displaystyle \sum_{i=1}^n{TP_i+FN_i} i=1∑nTPi+FNi。
而不再是类似二分类中的 ∑ i = 1 n T P i + F N i + F P i + T N i \displaystyle \sum_{i=1}^n{TP_i+FN_i+FP_i+TN_i} i=1∑nTPi+FNi+FPi+TNi的累加和。
从上图混淆矩阵中可以直观地看出, T P i TP_i TPi为按列统计预测错误的样本数, F N i FN_i FNi为按行统计预测错误的样本数。
错误率(error rate)是指分类错误的样本数占总样本数的比例;
e r r o r r a t e = ∑ i = 1 n F P i ∑ i = 1 n T P i + F P i error rate = \frac{\displaystyle \sum_{i=1}^n{FP_i}}{\displaystyle \sum_{i=1}^n{TP_i+FP_i}} errorrate=i=1∑nTPi+FPii=1∑nFPi
准确率是指分类正确的样本数占总样本数的比例。
a c c u a r c y = ∑ i = 1 n T P i ∑ i = 1 n T P i + F P i accuarcy = \frac{\displaystyle \sum_{i=1}^n TP_i}{\displaystyle \sum_{i=1}^n{TP_i+FP_i}} accuarcy=i=1∑nTPi+FPii=1∑nTPi
根据计算方法的不同,可将多分类的度量分为macro方式和micro方式。
先在 n n n个二分类的混淆矩阵上计算出查准率和查全率,再计算平均查准率和平均查全率。
可见,macro是基于类别的加权平均,每个类别的权重相同。
正确地预测为类别 i i i的样本数 ÷ \div ÷预测为类别 i i i的样本总数(预测命中率)
P i = T P i T P i + F P i P_i = \frac{TP_i}{TP_i + FP_i} Pi=TPi+FPiTPi
则, m a c r o − P = 1 n ∑ i = 1 n P i macro-P =\frac{1}{n} \displaystyle \sum_{i=1}^nP_i macro−P=n1i=1∑nPi
其中, T P i TP_i TPi读作:正确地预测为分类 i i i;
F P i FP_i FPi读作:错误地将其他分类预测为分类 i i i的样本数。
且, T P i = T i P i TP_i = {T_iP_i} TPi=TiPi, F P i = ∑ j = 1 , j ≠ i n F j P i FP_i = \displaystyle \sum_{j=1,\: j\neq i}^n{F_jP_i} FPi=j=1,j=i∑nFjPi;
T i P i T_iP_i TiPi读作:正确地将真实分类 i i i预测为分类 i i i;
F j P i F_jP_i FjPi读作:错误地将真实分类 j j j预测为分类 i i i。
正确地预测为类别 i i i的样本数 ÷ \div ÷类别 i i i的实际样本数(预测召回率)
R i = T P i T P i + F N i R_i = \frac{TP_i}{TP_i + FN_i} Ri=TPi+FNiTPi
则, m a c r o − R = 1 n ∑ i = 1 n R i macro-R =\frac{1}{n} \displaystyle \sum_{i=1}^nR_i macro−R=n1i=1∑nRi
其中, F N i FN_i FNi读作:错误地将真实分类 i i i预测为其他分类。
且, F N i = ∑ j = 1 , j ≠ i n F i P j FN_i = \displaystyle \sum_{j=1,\: j\neq i}^n{F_iP_j} FNi=j=1,j=i∑nFiPj;
F i P j F_iP_j FiPj读作:错误地将真实分类 i i i预测为分类 j j j。
macroF1-score有两种计算公式:
基于 m a c r o − P macro-P macro−P和 m a c r o − R macro-R macro−R的按照公式直接计算:
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-F1 = \frac{2 \times macro-P \times macro-R}{macro-P + macro-R} macro−F1=macro−P+macro−R2×macro−P×macro−R
基于 P i P_i Pi和 R i R_i Ri的 F 1 i F1_i F1i的平均:
F 1 i = 2 × P i × R i P i + R i F1_i = \frac{2 \times P_i \times R_i}{P_i + R_i} F1i=Pi+Ri2×Pi×Ri
m a c r o − F 1 = 1 n × ∑ i = 1 n F 1 i macro-F1 = \frac{1}{n} \times \displaystyle \sum_{i=1}^n{F1_i} macro−F1=n1×i=1∑nF1i
先将 n n n个二分类的混淆矩阵的四个元素进行平均,得到 T P ‾ \overline{TP} TP、 F N ‾ \overline{FN} FN、 F P ‾ \overline{FP} FP、 T N ‾ \overline{TN} TN,然后再计算平均查准率和平均查全率。
可见,micro是基于样本数的加权平均,每个样本的权重相同。
T P ‾ = 1 n ∑ i = 1 n T P i \overline{TP} =\frac{1}{n} \displaystyle \sum_{i=1}^n TP_i TP=n1i=1∑nTPi
F P ‾ = 1 n ∑ i = 1 n F P i \overline{FP} =\frac{1}{n} \displaystyle \sum_{i=1}^n FP_i FP=n1i=1∑nFPi
F N ‾ = 1 n ∑ i = 1 n F N i \overline{FN} =\frac{1}{n} \displaystyle \sum_{i=1}^n FN_i FN=n1i=1∑nFNi
T N ‾ = 1 n ∑ i = 1 n T N i \overline{TN} =\frac{1}{n} \displaystyle \sum_{i=1}^n TN_i TN=n1i=1∑nTNi
m i c r o − P = T P ‾ T P ‾ + F P ‾ = ∑ i = 1 n T P i ∑ i = 1 n T P i + ∑ i = 1 n F P i micro-P = \frac{\overline{TP}}{\overline{TP} + \overline{FP}} = \frac{\displaystyle \sum_{i=1}^n TP_i}{\displaystyle \sum_{i=1}^n TP_i + \sum_{i=1}^n FP_i} micro−P=TP+FPTP=i=1∑nTPi+i=1∑nFPii=1∑nTPi
m i c r o − R = T P ‾ T P ‾ + F N ‾ = ∑ i = 1 n T P i ∑ i = 1 n T P i + ∑ i = 1 n F N i micro-R = \frac{\overline{TP}}{\overline{TP} + \overline{FN}} = \frac{\displaystyle \sum_{i=1}^n TP_i}{\displaystyle \sum_{i=1}^n TP_i + \sum_{i=1}^n FN_i} micro−R=TP+FNTP=i=1∑nTPi+i=1∑nFNii=1∑nTPi
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-F1 = \frac{2 \times micro-P \times micro-R}{micro-P + micro-R} micro−F1=micro−P+micro−R2×micro−P×micro−R
根据之前的分析,如果混淆矩阵为正方形时,样本总数为 ∑ i = 1 n T P i + F P i \displaystyle \sum_{i=1}^n{TP_i+FP_i} i=1∑nTPi+FPi,也等于 ∑ i = 1 n T P i + F N i \displaystyle \sum_{i=1}^n{TP_i+FN_i} i=1∑nTPi+FNi;
因此,当混淆矩阵为正方形时,有 m i c r o − P = m i c r o − R = m i c r o − F 1 micro-P=micro-R=micro-F1 micro−P=micro−R=micro−F1。
当混淆矩阵为长方形时,虽然 ∑ i = 1 n F P i = ∑ i = 1 n F N i \displaystyle \sum_{i=1}^n{FP_i} = \displaystyle \sum_{i=1}^n{FN_i} i=1∑nFPi=i=1∑nFNi,这里 n n n为支持的分类数。
但是我们在计算查准率和查全率的分母时,分类数应该取真实样本的分类数 n ′ n' n′,此时 n ≠ n ′ n \neq n' n=n′。
举个混淆矩阵为长方形的例子,支持三个分类,混淆矩阵为:
预测分类 | 1 | 2 | 3 | |
---|---|---|---|---|
真实 | 1 | T 1 P 1 T_1P_1 T1P1=27 | F 1 P 2 F_1P_2 F1P2=1 | F 1 P 3 F_1P_3 F1P3=17 |
分类 | 2 | F 2 P 1 F_2P_1 F2P1=0 | T 2 P 2 T_2P_2 T2P2=8 | F 2 P 3 F_2P_3 F2P3=5 |
这里, n = 3 n=3 n=3, n ′ = 2 n'=2 n′=2,
T P ‾ = 1 n ∑ i = 1 n ′ T P i = 1 n ( T 1 P 1 + T 2 P 2 ) = 1 n × ( 27 + 8 ) = 1 n × 35 \overline{TP} = \frac{1}{n} \displaystyle \sum_{i=1}^{n'}{TP_i} = \frac{1}{n} (T_1P_1+T_2P_2)=\frac{1}{n} \times(27+8)=\frac{1}{n} \times 35 TP=n1i=1∑n′TPi=n1(T1P1+T2P2)=n1×(27+8)=n1×35
F P ‾ = 1 n ∑ i = 1 n ′ F P i = 1 n ( F 2 P 1 + F 1 P 2 ) = 1 n × ( 0 + 1 ) = 1 n × 1 \overline{FP} = \frac{1}{n} \displaystyle \sum_{i=1}^{n'}{FP_i} = \frac{1}{n} (F_2P_1+F_1P_2)=\frac{1}{n} \times(0+1)=\frac{1}{n}\times 1 FP=n1i=1∑n′FPi=n1(F2P1+F1P2)=n1×(0+1)=n1×1
F N ‾ = 1 n ∑ i = 1 n ′ F N i = 1 n ( F 1 P 2 + F 1 P 3 + F 2 P 1 + F 2 P 3 ) = 1 n × ( 1 + 17 + 0 + 5 ) = 1 n × 23 \overline{FN} = \frac{1}{n} \displaystyle \sum_{i=1}^{n'}{FN_i} = \frac{1}{n} (F_1P_2+F_1P_3+F_2P_1+F_2P_3)=\frac{1}{n} \times (1+17+0+5) = \frac{1}{n} \times 23 FN=n1i=1∑n′FNi=n1(F1P2+F1P3+F2P1+F2P3)=n1×(1+17+0+5)=n1×23
m i c r o − P = T P ‾ T P ‾ + F P ‾ = ∑ i = 1 n ′ T P i ∑ i = 1 n ′ T P i + ∑ i = 1 n ′ F P i = 35 35 + 1 = 0.972222222 micro-P = \frac{\overline{TP}}{\overline{TP} + \overline{FP}} = \frac{\displaystyle \sum_{i=1}^{n'} TP_i}{\displaystyle \sum_{i=1}^{n'} TP_i + \sum_{i=1}^{n'} FP_i} = \frac{35}{35+1}=0.972222222 micro−P=TP+FPTP=i=1∑n′TPi+i=1∑n′FPii=1∑n′TPi=35+135=0.972222222
m i c r o − R = T P ‾ T P ‾ + F N ‾ = ∑ i = 1 n ′ T P i ∑ i = 1 n ′ T P i + ∑ i = 1 n ′ F N i = 35 35 + 23 = 0.603448276 micro-R = \frac{\overline{TP}}{\overline{TP} + \overline{FN}} = \frac{\displaystyle \sum_{i=1}^{n'} TP_i}{\displaystyle \sum_{i=1}^{n'} TP_i + \sum_{i=1}^{n'} FN_i}=\frac{35}{35+23}=0.603448276 micro−R=TP+FNTP=i=1∑n′TPi+i=1∑n′FNii=1∑n′TPi=35+2335=0.603448276