读书笔记 机器学习(周志华)第二章 模型评估与选择
2.1 经验误差与过拟合
“错误率”(error rate):分类错误的样本数占样本总数的比例。如果m个样本中有a个样本分类错误,则错误率 E = a / m E=a/m E=a/m,相应地 1 − a / m 1-a/m 1−a/m称为“精度”(accuracy),即“精度=1-错误率”。
“误差”
“训练误差”(training error)或 “经验误差”(emperical error):模型在训练集上的误差。
“泛化误差”(generalization error):在新样本上的误差。
我们希望得到泛化误差小的model,但很多情况下,我们只能努力使经验误差最小化。
“过拟合”(overfitting):model把训练样本学的“太好了”,很可能把训练样本中的一些特点当做所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降。很多种原因导致过拟合,最常见的情况就是model学习能力太强,把训练集中包含的不太一般的特性多学到了。
“欠拟合”(underfitting):model对训练集的一般性质尚未学好。由于学习能力低下导致。
2.2 评估方法
通常,我们通过实验测试来对model的泛化误差进行评估,做出选择。需使用“测试集”(testing set)来测试model对新样本的判别能力,得出“测试误差”(testing error)作为泛化误差的近似。
通过对数据集D进行处理,得出训练集S和测试集T。
2.2.1 留出法
“留出法”(hold-out):将D分成S和T,即 D = S ∪ T , S ∩ T = ϕ D=S \cup T, S\cap T =\phi D=S∪T,S∩T=ϕ。在S上训练处model,用T来评估其测试误差,作为对泛化误差的估计。
2.2.2 交叉验证法
“交叉验证法”(cross validation):将D分成k个大小相似的互斥子集,即 D = D 1 ∪ D 2 ∪ . . . ∪ D k , D i ∩ D j = ϕ ( i ≠ j ) D=D_1\cup D_2 \cup ... \cup D_k, D_i \cap D_j = \phi(i\ne j) D=D1∪D2∪...∪Dk,Di∩Dj=ϕ(i̸=j)。每次用k-1个子集作为S,余下子集作为T,得到k组训练/测试集,可进行k次训练和测试,最终返回k个测试结果的均值。
2.2.3 自助法
2.2.4 调参与最终模型
2.3 性能度量
“性能度量”(performance measure):衡量model泛化能力的评价标准。
回归中最常用的性能度量是“均方误差”(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)=m1∑i=1m(f(xi)−yi)2.
f:medel。
2.3.1 错误率与精度
2.3.2 查准率、查全率与F1
“混淆矩阵”(confusion matrix):对于二分类问题,根据实际与预测可分为真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四中情形,另TP、FP、TN、FN对应,则有 T P + N P + T N + F N = 样 例 总 数 TP+NP+TN+FN=样例总数 TP+NP+TN+FN=样例总数,
真实情况 | 预测结果 | 预测结果 |
---|---|---|
真实情况 | 正例 | 反例 |
正例 | TP | FN |
反例 | FP | TN |
查准率P与查全率R分别定义为:
P
=
T
P
T
P
+
F
P
P=\frac{TP}{TP+FP}
P=TP+FPTP,
R
=
T
P
T
P
+
F
N
R=\frac{TP}{TP+FN}
R=TP+FNTP.
P与R不可兼得。
F
1
=
2
×
P
×
R
P
+
R
=
2
×
T
P
样
例
总
数
+
T
P
−
T
N
F1 = \frac{2\times P \times R}{P+R}=\frac{2 \times TP}{样例总数+TP-TN}
F1=P+R2×P×R=样例总数+TP−TN2×TP.
2.3.3ROC与AUC
2.4 比较检验
2.4.1 假设检验
2.4.2 交叉验证t检验
2.4.3 McNemar检验
2.4.4 Friedman检验 与 Nemenyi后续检验
2.5 偏差与方差
“偏差-方差分解”(bias-variance decomposition):是解释学习算法泛化性能的一种重要工具。
E
(
f
;
D
)
=
b
i
a
s
2
(
x
)
+
v
a
r
(
x
)
+
ϵ
2
E(f; D) = bias ^2 (x) + var(x) + \epsilon^2
E(f;D)=bias2(x)+var(x)+ϵ2