一、性能度量概念
对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评估标准,这就是性能度量。
在预测任务中,给定样例集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } D={\lbrace(x_1,y_1),(x_2,y_2),…,(x_m,y_m)\rbrace} D={(x1,y1),(x2,y2),…,(xm,ym)},其中 y i y_i yi 是示例 x i x_i xi 的真实标记。要评估机器学习 f f f 的性能,就要把学习器预测结果 f ( x ) f(x) f(x) 与真实标记 y y y 进行比较。
二、回归任务性能度量
回归任务最常用的性能度量是“均方误差”(mean squared error)
E
(
f
;
D
)
=
1
m
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
E(f;D)=\frac{1}{m}\sum_{i=1}^m(f(x_i)-y_i)^2
E(f;D)=m1i=1∑m(f(xi)−yi)2
更一般的。对于数据分布
D
D
D 和概率密度函数
p
(
⋅
)
p(\cdot)
p(⋅),均方误差可描述为
E
(
f
;
D
)
=
∫
x
−
D
(
f
(
x
)
−
y
)
2
p
(
x
)
d
x
E(f;D)=\int_{x-D} (f(x)-y)^2~p(x)dx
E(f;D)=∫x−D(f(x)−y)2 p(x)dx
三、分类任务性能度量
以二分类为例,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四种情况,令 TP、FP、TN、FN分别表示其对应的样例数,显然有 TP+FP+TN+FN=样例总数。分类结果的“混淆矩阵”如下所示
1、准确率
A c c r u c y = T P + T N T P + F P + T N + F N Accrucy=\frac{TP+TN}{TP+FP+TN+FN} Accrucy=TP+FP+TN+FNTP+TN
2、精确率(查准率)
P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP
3、召回率(查全率)
R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP
查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。
4、P-R 曲线
以查准率(P)为纵轴,查全率(R)为横轴,可绘制出“P-R图”
若一个学习器的P-R曲线被另一个学习器的P-R曲线完全“包住”,则可认为后者的性能优于前者。如图中学习器A的性能优于学习器C。
如果两个学习器的P-R曲线发生了交叉,例如图中的A和B,则难以一般情况来判断,此时可以比较P-R曲线下面积的大小,它在一定程度上表征了学习器在查准率和查全率上取得相对“双高”的比例,但这个值比较难计算。对此,人们设计了如下综合考虑查准率、查全率的性能度量:
(1)、平衡点(Break-Even Point,简称BEM)
“平衡点” 是 “查准率=查全率” 时的取值,如上图中学习器A、B、C的BEM分别大概为0.8、0.71、0.63,而基于BEM的比较,可认为学习器A优于B。
(2)、F1度量
由于 “平衡点” 的判别方式过于简化,因此我们更常用的是F1度量,F1度量是基于查准率和查全率的调和平均定义的:
1
F
1
=
(
1
2
⋅
1
P
+
1
R
)
\frac{1}{F1}=\left(\frac{1}{2}\cdot \frac{1}{P}+\frac{1}{R}\right)
F11=(21⋅P1+R1)
F
1
=
2
∗
P
∗
R
P
+
R
F1=\frac{2*P*R}{P+R}~~~~~~~
F1=P+R2∗P∗R
=
2
∗
T
P
样
例
总
数
+
T
P
−
T
N
~~~~~~~~~~~~~~~~~~~~~~=\frac{2*TP}{样例总数+TP-TN}
=样例总数+TP−TN2∗TP
有时对查全率和查准率的要求不一样,所以需要对其进行加权(如商品推荐时为了尽量少打扰用户,查准率就重要一些。确定嫌疑人时希望少漏掉嫌疑犯,此时查全率就重要一些。),此时就需要用
F
β
F_\beta
Fβ:
F
β
=
(
1
+
β
2
)
∗
P
∗
R
(
β
2
∗
P
)
+
R
F_\beta=\frac{(1+{\beta}^2 )*P*R}{({\beta}^2 *P)+R}
Fβ=(β2∗P)+R(1+β2)∗P∗R
F
β
F_\beta
Fβ则是加权调和平均:
1
F
β
=
1
1
+
β
2
⋅
(
1
P
+
β
2
R
)
\frac{1}{F_\beta}=\frac{1}{1+{\beta}^2}\cdot \left(\frac{1}{P}+\frac{{\beta}^2}{R}\right)
Fβ1=1+β21⋅(P1+Rβ2)
与算术平均
(
P
+
R
2
)
(\frac{P+R}{2})
(2P+R)和几何平均
(
P
∗
R
)
(\sqrt{P*R})
(P∗R)相比,调和平均更重视较小值。
其中 β > 0 \beta>0 β>0 度量了查全率对查准率的相对重要性, β = 1 \beta=1 β=1 时退化为标准的F1; β > 1 \beta>1 β>1 时查全率有更大影响; β < 1 \beta<1 β<1 时查准率有更大影响。
5、ROC和AUC
ROC 全称是“受试者工作特征”(ROC, Receiver Operating Characteristic),根据学习器的预测结果,对样本依概率从高到低进行进行排序,然后按照顺序逐个把样本作为正例进行预测,计算出此时的TPR(真正例率,True Positive Rate)作为纵坐标,FPR(假正例率,False Positive Rate)作为横坐标,画出的曲线就是ROC曲线。
T
P
R
=
T
P
T
P
+
F
N
TPR = \frac{TP}{TP+FN}
TPR=TP+FNTP
F
P
R
=
F
P
T
N
+
F
P
FPR=\frac{FP}{TN+FP}
FPR=TN+FPFP
ROC曲线上的四种特殊值:
-
(0,1) 即FPR=0, TPR=1,这意味着FN(false negative)=0,并且FP(false positive)=0。这是一个完美的分类器
-
(1,0),即FPR=1,TPR=0,类似地分析可以发现这是一个最糟糕的分类器,因为它成功避开了所有的正确答案。
-
(0,0),即FPR=TPR=0,即FP(false positive)=TP(true positive)=0,可以发现该分类器预测所有的样本都为负样本(negative)。
-
(1,1),分类器实际上预测所有的样本都为正样本。
通过上述定义可知,AUC是通过对ROC曲线下各部分面积求和而得,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5~1之间。
使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。
假定ROC曲线是由坐标为
(
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
m
,
y
m
)
)
\left( (x_1,y_1),(x_2,y_2),…,(x_m,y_m)\right)
((x1,y1),(x2,y2),…,(xm,ym))的点按序连接而形成
(
x
1
=
0
,
x
m
=
1
)
(x_1=0,x_m=1)
(x1=0,xm=1),参照上图(2),则AUC可估算为
A
U
C
=
1
2
∑
i
=
1
m
−
1
(
x
i
+
1
−
x
i
)
⋅
(
y
i
+
y
i
+
1
)
AUC=\frac{1}{2}\sum_{i=1}^{m-1}(x_{i+1}-x_i)\cdot(y_i+y_{i+1})
AUC=21i=1∑m−1(xi+1−xi)⋅(yi+yi+1)
其它参考
https://blog.csdn.net/YE1215172385/article/details/79443552 代码
https://blog.csdn.net/shareviews/article/details/82848689
https://blog.csdn.net/appleyuchi/article/details/96192304 详细