机器学习中的性能度量
在前面中的的小节中有如下的两个性能度量
错误率:分类错误的样本数占总样本数的比例
精度:1-错误率
通常情况下,单单使用这两个性能度量,不能很好的反应训练结果。所以需要借助其他指标来评价模型的好坏。
均方误差、错误率与精度
在回归模型中,常用的性能度量是均方误差(mean squared error)
E
(
f
;
d
)
=
1
m
(
f
(
x
i
)
−
y
i
)
2
E(f;d) = \frac{1}{m}(f(x_i)-y_i)^2
E(f;d)=m1(f(xi)−yi)2
对于分类模型,可以使用上面所说的错误率和精度,定义如下
E
(
f
;
D
)
=
1
m
∑
i
=
1
m
I
(
f
(
x
i
)
≠
y
i
)
E(f;D)=\frac{1}{m} \sum_{i=1}^{m} \mathbb I(f(x_i) \ne y_i)
E(f;D)=m1∑i=1mI(f(xi)̸=yi)
A
c
c
(
f
;
D
)
=
1
m
∑
i
=
1
m
I
(
f
(
x
i
)
=
y
i
)
=
1
−
E
(
f
;
D
)
Acc(f;D) = \frac{1}{m} \sum_{i=1}^{m} \mathbb I(f(x_i) = y_i)=1-E(f;D)
Acc(f;D)=m1∑i=1mI(f(xi)=yi)=1−E(f;D)
PRC与ROC
为了更好的评价模型的好坏,可以使用PRC(Precision-Recall Curce)与ROC(Receiver Operating Characteristic)。
混淆矩阵
首先是混淆矩阵
真实情况 | 预测结果 | |
---|---|---|
正例 | 反例 | |
正例 | TP | FP |
反例 | FN | TN |
则有命中率(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
命中率(Precision)关注的是结果,结果中的正例有多少是被正确分类的。
召回率(Recall)关注的是模型本身,数据集中的正例到底有多少被正确分类。
举个例子加以说明。如在信息检索中,对于目标用户而言,一类是用户感兴趣的,一类是用户不感兴趣的。而模型的工作是在所有信息中将用户感兴趣的那部分挑选出来,这相当于一个二分类问题。
命中率的含义是,在被挑选出来的信息中(即模型认为用户感兴趣的),有多少信息是真正让用户感兴趣的。
召回率的含义是,在所有信息中,那些真正让用户感兴趣的信息有多少被挑选了出来。
PRC
有了P和R,即可引入PRC了。
个人理解的二分类,就是选择一种策略,对样本进行打分,然后设定阈值,将高于阈值的看做为正样本(或负样本),将低于阈值的看作为负样本(或正样本)。二分类一般阈值设定为50%。如果能找到这样一条分界线(阈值),完美的将数据集分为正例和反例,那么再好不过。事与愿违,通常模型并不能被训练的这么完美。
PRC的绘制方法
例如挑选出正例,将评分(如上例中的感兴趣程度)按照从高到低排序。一开始设一空集 E m p Emp Emp,按照排序顺序,逐个将样本加入到集合 E m p Emp Emp,分别计算当前集合 E m p Emp Emp中的 P 、 R P、R P、R,将 ( R , P ) (R,P) (R,P)作为点坐标绘制到平面上,即可得到 P R C PRC PRC。
PRC的含义
PRC越平滑越好,包围的面积越大越好。当两条PRC相差无几的时候,可以分别计算其对应模型的 F 1 F1 F1值, F 1 F1 F1值越大越好。除了直接计算F1值,也可以画出 ( 0 , 0 ) (0,0) (0,0)到 ( 1 , 1 ) (1,1) (1,1)的直线,看与PRC的交点,交点代表最大的 F 1 F1 F1值。这是因为, F 1 = 2 × P × R P + R F1 = \frac{2 × P × R}{P+R} F1=P+R2×P×R,观察分母,根据均值不等式可以推出上述结论。
上图中深蓝比浅蓝好,绿色比其他的要好。
那为何面积越大越好呢?最理想的情况是面积为1,面积为1的时候,说明模型给出合适的评分,我们可以找到一个阈值,使得大于阈值的均为正样本,小于阈值的均为负样本。
ROC
ROC需要计算两个值,作为其的横纵坐标
TPR(True Positive Rate)
T
P
R
=
T
P
T
P
+
F
N
TPR = \frac{TP}{TP +FN}
TPR=TP+FNTP
FPR(False Positive Rate)
F
P
R
=
F
P
T
N
+
F
P
FPR = \frac{FP}{TN + FP}
FPR=TN+FPFP
值得注意的是,两个指标的分母都是定值。
ROC的绘制方法
同PRC的绘制方法
在计算的过程中,由于分母是定值,分子不断增大,两个值都会不断的增大。
AUC是ROC所围成的面积,同样面积越大,代表模型越好。
代价敏感错误
在不同的场合下, 我们希望准确率和召回率有所侧重。比如在疾病诊断过程当中,希望召回率更高,命中率低一些没关系,因为如果患者真的有疾病,可能错过了疾病的最佳治疗时期。相反,如果基于不错怪好人的原则,在嫌疑人确认的时候,希望命中率更高一些。
如果此时我们希望不同的错误(把好人误认为坏人,或者把坏人误认为好人)对整个模型的代价不同,那么我们就为其附上不同的权值即可。
如图所示,为两种错误分别附上不同的“错误权重”,进而可以得到在当前代价敏感下模型的"代价敏感"错误率为