机器学习中常见的性能度量(performance measure)

性能度量(performance measure”即衡量模型泛化能力的评价标准。

模型的“好坏”不仅取决于算法和数据,还决定于任务需求,而性能度量所反映的就是任务需求。

在测试任务中,给定样例集: D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } D=\{(\boldsymbol{x_1},y_1),(\boldsymbol{x_2},y_2),…,(\boldsymbol{x_m},y_m)\} D={(x1,y1),(x2,y2),,(xm,ym)},其中 y i y_i yi是示例 x i \boldsymbol{x_i} xi的真实标记。通过对比学习器预测结果 f ( x ) f(x) f(x)与真是标记 y y y实现学习器 f f f的性能度量。

回归任务中常见的性能度量

均方根误差(Root mean square error

R M S E ( D , f ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 RMSE(D,f)=\sqrt{\frac{1}{m}\sum_{i=1}^m\Bigl(f(\boldsymbol{x_i})-y_i\Bigl)^2} RMSE(D,f)=m1i=1m(f(xi)yi)2

在实际应用中常用**均方误差(mean square error,简称MSE)**来代替RMSE。因为最小化MSE要比最小化RMSE更为简单,但两者效果相同。
M S E ( D , f ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 MSE(D,f)=\frac{1}{m}\sum_{i=1}^m\Bigl(f(\boldsymbol{x_i})-y_i\Bigl)^2 MSE(D,f)=m1i=1m(f(xi)yi)2
虽然RMSE(或MSE)通常是回归任务中的首选性能度量,但是在某些情况下,如:当有很多离群区域(outlier districts)时,平均绝对误差可能更加适合。

平均绝对误差(Mean absolute error

M A E ( D , f ) = 1 m ∑ i = 1 m ∣ f ( x i ) − y i ∣ MAE(D,f)=\frac{1}{m}\sum_{i=1}^m|f(\boldsymbol{x_i})-y_i| MAE(D,f)=m1i=1mf(xi)yi
RMSE和MAE均 运用于测量预测向量和目标值向量之间的距离。而距离(或范数)的测度可以有多种:

  • RMSE对应欧几里得距离(Euclidean distance),也称 l 2 l_2 l2范数,记作 ∣ ∣ • ∣ ∣ 2 ||•||_2 2 ∣ ∣ • ∣ ∣ ||•||
  • MAE对应曼哈顿距离(Manhattan distance),也称 l 1 l_1 l1范数,记作 ∣ ∣ • ∣ ∣ 1 ||•||_1 1
  • 一般地,包含n个元素的向量 v k v_k vk的范数可以定义为 ∣ ∣ v ∣ ∣ k = ( ∣ v 0 ∣ k + ∣ v 1 ∣ k + … + ∣ v n ∣ k ) 1 k ||\boldsymbol{v}||_k=(|v_0|^k+|v_1|^k+…+|v_n|^k)^\frac{1}{k} vk=(v0k+v1k++vnk)k1 l 0 l_0 l0给出向量的基数,即元素的数量。 l ∞ l_∞ l给出向量中最大的绝对值。
  • **范数指数越高,越关注大的价值,忽视小的价值。**所以,RMSE要比MAE更加敏感。当异常值较少时,RMSE表现更为优异。
  • 对于连续属性,可由概率密度函数进行代替。

分类任务中常见的性能度量

错误率与精度

错误率是分类错误的样本数占样本总数的比例。对样例集 D D D,分类错误率定义为:
E ( D , f ) = 1 m ∑ i = 1 m I ( f ( x 1 ) ≠ y i ) E(D,f)=\frac{1}{m}\sum_{i=1}^mI\Bigl(f(\boldsymbol{x_1})\neq {y_i}\Bigl) E(D,f)=m1i=1mI(f(x1)=yi)
其中, I ( • ) I(•) I()为指示函数,当 • • 为真时取值为1,为假时取值为0。

精度是分类正确的样本数占样本总数的比例。精度定义为:
a c c ( D , f ) = 1 m ∑ i = 1 m I ( f ( x 1 ) = y i ) = 1 − E ( D , f ) acc(D,f)=\frac{1}{m}\sum_{i=1}^mI\Bigl(f(\boldsymbol{x_1})={y_i}\Bigl)=1-E(D,f) acc(D,f)=m1i=1mI(f(x1)=yi)=1E(D,f)同样,对于连续属性,可有概率密度函数 p ( • ) p(•) p()进行描述。

查准率、查全率与 F 1 F_1 F1

首先,以二分类为例,引入混淆矩阵(confusion matrix)的概念。在混淆矩阵中,矩阵的行表示真实类别,矩阵的列表示实际类别。按照真是类别与学习器预测类别的组合将样例划分为4种情形:真正例( T P TP TP)、假正例( F P FP FP)、真反例( T N TN TN)、假反例( F N FN FN)。

查准率(precision”又称为“准确率”,定义如下:
P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP
查全率(recall“又称”召回率“,定义如下:
R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP一般地,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。以查准率为纵轴查全率为横轴作图,得到“查准率-查全率曲线”,简称"P-R曲线"。

通常情况下,若一个学习器的P-R曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者。如果两个学习器的P-R曲线发生交叉,则很难断言两者孰优孰劣,只能在具体的查准率和查全率条件下进行比较。如果硬要将A和B两学习器比个优劣,一个比较合理地判据是比较P-R曲线下的面积,但这个值并不好计算。因此人们设计了一些综合考虑查准率、查全率的性能度量。平衡点(Break-Even Point,简称EBP)就是这样一个度量,也就是指“查准率=查全率”时的取值。但EBP过于简单,更常用的是 F 1 F_1 F1度量。

F 1 F_1 F1度量定义如下:
F 1 = 2 × P × R P + R = 2 × T P 样 例 总 数 + T P − T N F_1=\frac{2×P×R}{P+R}=\frac{2×TP}{样例总数+TP-TN} F1=P+R2×P×R=+TPTN2×TP
F 1 F_1 F1度量的一般形式 F β F_β Fβ度量——来表达查准率与查全率的不同偏好,其定义为:
F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R F_β=\frac{(1+β^2)×P×R}{(β^2×P)+R} Fβ=(β2×P)+R(1+β2)×P×R
其中 β > 0 β>0 β>0度量了查全率对查准率的相对重要性。 β = 1 β=1 β=1时退化为标准的 F 1 F_1 F1;当 β > 1 β>1 β>1时对查全率有更大影响;当β<1时对查准率有更大影响。

若在n个二分类器混淆矩阵上综合考虑查准率和查全率,可以直接现在各混淆矩阵上分别计算查准率和查全率,记为 ( P 1 , R 1 ) , ( P 2 , R 2 ) , … , ( P n , R n ) (P_1,R_1),(P_2,R_2),…,(P_n,R_n) (P1,R1),(P2,R2),,(Pn,Rn),在计算平均值,可得

宏查准率(macro-P:
m a c r o P = 1 n ∑ i = 1 n P i macroP=\frac{1}{n}\sum_{i=1}^nP_i macroP=n1i=1nPi
宏查全率(macro-R
m a c r o R = 1 n ∑ i = 1 n R i macroR=\frac{1}{n}\sum_{i=1}^nR_i macroR=n1i=1nRi
F 1 F_1 F1macro- F 1 F_1 F1)
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 macroF_1=\frac{2×macroP×macroR}{macroP+macroR} macroF1=macroP+macroR2×macroP×macroR
另一种方法为先将个混淆矩阵的对应元素进行平均,得到 T P 、 F P 、 T N 、 F N TP、FP、TN、FN TPFPTNFN的平均值,分别记为: T P ‾ 、 F P ‾ 、 T N ‾ 、 F N ‾ \overline{TP}、\overline{FP}、\overline{TN}、\overline{FN} TPFPTNFN,根据这些平均值得

微查准率(micro-P
m i c r o P = T P ‾ T P ‾ + F P ‾ microP=\frac{\overline{TP}}{\overline{TP}+\overline{FP}} microP=TP+FPTP
微查全率(micro-R
m i c r o R = T P ‾ T P ‾ + F N ‾ microR=\frac{\overline{TP}}{\overline{TP}+\overline{FN}} microR=TP+FNTP
F 1 F_1 F1micro- F 1 F_1 F1
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 microF_1=\frac{2×microP×microR}{microP+microR} microF1=microP+microR2×microP×microR

ROC与AUC

很多学习器是为测试样本产生一个实值或概率预测,将这一预测值与一个分类阈值进行比较,若大于阈值则分为正类,否则为反类。事实上,可以根据这个实值或概率预测结果,将样本进行排序,“最可能”的正例放在前面,“最不可能”的正例放在后面。而分类过程就相当于在这个排序中以某个“截断点(cut point)”将样本分为两部分,前一部分为正例,后一部分为反例。

根据不同任务需求选择不同的截断点,若更重视“查准率”,则可选择排序中排序靠前的位置;若更重视”查全率“,则可选择靠后的位置进行截断。这也是”查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低“的原因之一。

综上,排序质量的好坏,体现了综合考虑学习器在不用任务下的“期望泛化性能“的好坏。ROC曲线则是从这一角度来评价学习器泛化性能。

ROC全称是**“受试者工作特征(Receiver Operating Characteristic)”曲线**,以“真正例率(True Positive Rate,简称TPR)”为纵轴,以“假正例率(False Positive Rate,简称FPR)”为横轴。
T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP

E P R = F P T N + F P EPR=\frac{FP}{TN+FP} EPR=TN+FPFP

与P-R曲线相似,若一个学习器的ROC曲线被另一个完全包围,则可断言后者更优;如果出现交叉点,则难以判断孰优孰劣。如果一定要进行比较,则较为合理的判据是比较ROC曲线下的面积,即AUC(Area Under ROC Curve)。

假定ROC曲线由坐标 ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) {(x_1,y_1),(x_2,y_2),...,(x_m,y_m)} (x1,y1),(x2,y2),...,(xm,ym)的点按序链接而形成 ( x 1 = 0 , x m = 1 ) (x_1=0,x_m=1) (x1=0,xm=1),则AUC可估算为:
A U C = 1 2 ∑ i = 1 n − 1 ( x i + 1 − x i ) ( y i + y i + 1 ) AUC=\frac{1}{2}\sum_{i=1}^{n-1}(x_{i+1}-x_i)(y_i+y_{i+1}) AUC=21i=1n1(xi+1xi)(yi+yi+1)
从形式上来看,AUC考虑地是样本预测的排序质量,与排序误差紧密联系。给定 m + m^+ m+个正例和 m − m^- m个反例,另 D + D^+ D+ D − D^- D分别表示正、反例集合,则排序损失定义为
l r a n k = 1 m + m − ∑ x + ∈ D + ∑ x − ∈ D − ( I ( f ( x + ) < f ( x − ) ) + 1 2 I ( f ( x + ) = f ( x − ) ) ) l_{rank}=\frac{1}{m^+m^-}\sum_{x^+∈D^+}\sum_{x^-∈D^-}\biggl(I\Bigl(f(x^+)<f(x^-)\Bigl)+\frac{1}{2}I\Bigl(f(x^+)=f(x^-)\Bigl)\biggl) lrank=m+m1x+D+xD(I(f(x+)<f(x))+21I(f(x+)=f(x)))
因此有
A U C = 1 − l r a n k AUC=1-l_{rank} AUC=1lrank

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

为衡量不同类型错误所导致的损失不同,可为错误赋予“非均等代价(unequal cost”。

前面介绍的性能度量大都隐式假设了均等代价。而在非均等代价下,不再是简单地最小化错误次数,而是希望最小化“总体代价(total cost)。以二分类任务为例,令 D + D^+ D+ D − D^- D分别代表样例集 D D D的正例子集和反例子集, c o s t i j cost_{ij} costij表示第 i i i类样本预测为第 j j j类样本的代价。

所以,“代价敏感(cost-sensitive)”错误率
E ( D , f , c o s t ) = 1 m ( ∑ x i ∈ D + I ( f ( x i ) ≠ y i ) × c o s t 01 + ∑ x + ∈ D − I ( f ( x i ) ≠ y i ) × c o s t 10 ) E(D,f,cost)=\frac{1}{m}\biggl(\sum_{x_i∈D^+}I\Bigl(f(x_i)\neq{y_i}\Bigl)×cost_{01}+\sum_{x^+∈D^-}I\Bigl(f(x_i)\neq{y_i}\Bigl)×cost_{10}\biggl) E(D,f,cost)=m1(xiD+I(f(xi)=yi)×cost01+x+DI(f(xi)=yi)×cost10)
类似地,可基于分布定义的代价敏感错误率,以及一些其他性能度量。若令 c o s t i j cost_{ij} costij中的 i 、 j i、j ij取值不限于0、1,则可定义出多分类的代价敏感性能度量。

在非均等代价下,常用“代价曲线(cost curve”反应学习器的期望总体价值。

代价曲线图的横轴取值为 [ 0 , 1 ] [0,1] [0,1]的正例概率代价
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×cost_{01}}{p×cost_{01}+(1-p)×cost_{10}} P(+)cost=p×cost01+(1p)×cost10p×cost01
其中 p p p为样例为正例的概率;

纵轴是取值为 [ 0 , 1 ] [0,1] [0,1]的归一化代价
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×p×cost_{01}+FPR×(1-p)×cost_{10}}{p×cost_{01}×(1-p)×cost_{10}} costnorm=p×cost01×(1p)×cost10FNR×p×cost01+FPR×(1p)×cost10
其中 F N R = 1 − T P R FNR=1-TPR FNR=1TPR是假反例率。

聚类任务中常见的性能度量

聚类任务的目标就是使聚类结果的“簇内相似度(intra-cluster similarity”高且“簇间相似度(inter-cluster similarity”低。

聚类的性能度量大致分为两类:

外部指标(external index)

将聚类结果与某个“参考模型(reference model)“进行比较,称为”外部指标“。

对数据集 D = { x i , x 2 , . . . , x m } D=\{\boldsymbol{x_i,x_2,...,x_m}\} D={xi,x2,...,xm}通过聚类给出的簇划分为 C = { C 1 , C 2 , . . . , C k } C=\{C_1,C_2,...,C_k\} C={C1,C2,...,Ck},参考模型给出的簇划分为 C ∗ = { C 1 ∗ , C 2 ∗ , . . . , C s ∗ } C^*=\{C_{1}^*,C_{2}^*,...,C_{s}^*\} C={C1,C2,...,Cs}。相应地,令 λ λ λ λ ∗ λ^* λ分别表示与 C C C C ∗ C^* C对应的簇标记向量。将样本两两配对,定义
a = ∣ S S ∣ , S S = { ( x i , x j ) ∣ λ i = λ j , λ i ∗ = λ j ∗ , i < j } , b = ∣ S D ∣ , S D = { ( x i , x j ) ∣ λ i = λ j , λ i ∗ ≠ λ j ∗ , i < j } , c = ∣ D S ∣ , D S = { ( x i , x j ) ∣ λ i ≠ λ j , λ i ∗ = λ j ∗ , i < j } , d = ∣ D D ∣ , D D = { ( x i , x j ) ∣ λ i ≠ λ j , λ i ∗ ≠ λ j ∗ , i < j } , a=|SS|, SS=\{(\boldsymbol{x_i,x_j})|λ_i=λ_j,λ_{i}^*=λ_{j}^*,i<j\},\\ b=|SD|, SD=\{(\boldsymbol{x_i,x_j})|λ_i=λ_j,λ_{i}^*\neq{λ_{j}^*},i<j\},\\ c=|DS|, DS=\{(\boldsymbol{x_i,x_j})|λ_i\neqλ_j,λ_{i}^*={λ_{j}^*},i<j\},\\ d=|DD|, DD=\{(\boldsymbol{x_i,x_j})|λ_i\neqλ_j,λ_{i}^*\neq{λ_{j}^*},i<j\}, a=SS,SS={(xi,xj)λi=λj,λi=λj,i<j},b=SD,SD={(xi,xj)λi=λj,λi=λj,i<j},c=DS,DS={(xi,xj)λi=λj,λi=λj,i<j},d=DD,DD={(xi,xj)λi=λj,λi=λj,i<j},
可以推出 a + b + c + d = m ( m − 1 ) 2 a+b+c+d=\frac{m(m-1)}{2} a+b+c+d=2m(m1)成立。

基于以上各式推出常用的聚类度量的外部指标:

Jaccard系数(Jaccard Coefficient,简称JC)

J C = a a + b + c JC=\frac{a}{a+b+c} JC=a+b+ca

FM指数(Fowlkes and Mallows Index,简称FMI)

F M I = a a + b • a a + c FMI=\sqrt{\frac{a}{a+b}•\frac{a}{a+c}} FMI=a+baa+ca

Rand指数(Rand Index,简称RI)

R I = 2 ( a + b ) m ( m − 1 ) RI=\frac{2(a+b)}{m(m-1)} RI=m(m1)2(a+b)

上述性能度量的结果取值均在 [ 0 , 1 ] [0,1] [0,1]区间,值越大越好。

内部指标(internal index)

不利用任何参考模型直接考察聚类结果,称为“内部指标”。考虑通过聚类给出的簇划分为 C = { C 1 , C 2 , . . . , C k } C=\{C_1,C_2,...,C_k\} C={C1,C2,...,Ck},定义

C C C内样本间的平均距离 a v g ( C ) avg(C) avg(C)
a v g ( C ) = 2 ∣ C ∣ ( ∣ C ∣ − 1 ) ∑ 1 ≤ i < j ≤ ∣ C ∣ d i s t ( x i , y i ) avg(C)=\frac{2}{|C|(|C|-1)}\sum_{1≤i<j≤|C|}dist(\boldsymbol{x_i,y_i}) avg(C)=C(C1)21i<jCdist(xi,yi)
C C C内样本间的最远距离 d i a m ( C ) diam(C) diam(C)
d i a m ( C ) = m a x 1 ≤ i < j ≤ ∣ C ∣ d i s t ( x i , y i ) diam(C)=max_{1≤i<j≤|C|}dist(\boldsymbol{x_i,y_i}) diam(C)=max1i<jCdist(xi,yi)
C i C_i Ci与簇 C j C_j Cj最近样本间的距离 d m i n ( C i , C j ) d_{min}(C_i,C_j) dmin(Ci,Cj)
d m i n ( C i , C j ) = m i n x i ∈ C i , x j ∈ C j d i s t ( x i , y i ) d_{min}(C_i,C_j)=min_{\boldsymbol{x}_i∈C_i,\boldsymbol{x}_j∈C_j}dist(\boldsymbol{x_i,y_i}) dmin(Ci,Cj)=minxiCi,xjCjdist(xi,yi)
C i C_i Ci与簇 C j C_j Cj中心点的距离 d c e n ( C i , C j ) d_{cen}(C_i,C_j) dcen(Ci,Cj)
d c e n ( C i , C j ) = d i s t ( μ i , μ j ) d_{cen}(C_i,C_j)=dist(\boldsymbol{μ}_i,\boldsymbol{μ}_j) dcen(Ci,Cj)=dist(μi,μj)
其中, d i s t ( • , • ) dist(•,•) dist(,)用于计算两个样本之间的距离; μ \boldsymbol{μ} μ代表簇 C C C的中心点 μ = 1 ∣ C ∣ ∑ 1 ≤ i ≤ ∣ C ∣ x i \boldsymbol{μ}=\frac{1}{|C|}\sum_{1≤i≤|C|}\boldsymbol{x_i} μ=C11iCxi

基于以上各式推出常用的聚类度量的内部指标:

DB指数(Davies-Bouldin Index,简称DBI)

D B I = 1 k ∑ i = 1 k max ⁡ j ≠ i ( a v g ( C i ) + a v g ( C j ) d c e n ( C i , C j ) ) DBI=\frac{1}{k}\sum_{i=1}^k\max_{j\neq{i}}\Bigl(\frac{avg(C_i)+avg(C_j)}{d_{cen}(C_i,C_j)}\Bigl) DBI=k1i=1kj=imax(dcen(Ci,Cj)avg(Ci)+avg(Cj))

Dunn指数(Dunn Index,简称DI)

D I = min ⁡ 1 ≤ i ≤ k { min ⁡ j ≠ i ( d m i n ( C i , C j ) max ⁡ 1 ≤ l ≤ k d i a m ( C l ) ) } DI=\min_{1≤i≤k}\biggr\{\min_{j\neq{i}}\Bigl(\frac{d_{min}(C_i,C_j)}{\max_{1≤l≤k}diam(C_l)}\Bigl)\biggr\} DI=1ikmin{j=imin(max1lkdiam(Cl)dmin(Ci,Cj))}

显然, D B I DBI DBI的值越小越好,而 D I DI DI的值越大越好。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值