本篇主要介绍拟合与误差,以及调参等
1. 经验误差与过拟合
学习在训练集上的误差称为“训练误差”,而在新样本上误差称为“泛化误差”。
实际上,我们通常得不到泛化性能很好的模型,原有有两种:
- 过拟合(overfitting): 学习能力过于优秀,学到一些非一般的特性。
- 欠拟合(underfitting):对训练样本的一般性质尚未学好。
机器学习面临的问题一般是 N P NP NP难问题(什么是NP),因此只要相信 N P ≠ P NP\ne P NP=P那么过拟合将无法避免。
下面简单介绍从训练集得到测试集的方法:
- 留出法,按照比例从原始数据集分出训练和测试集;
- 交叉验证(cross validation) :先将数据集 D D D划分为 k k k个大小相似的互斥子集,即 D = D 1 ∪ D 2 ∪ ⋅ ⋅ ⋅ ∪ D j , D i ∪ D j ≠ ⊘ D=D_1\cup D_2 \cup ···\cup D_j , D_i \cup D_j\ne \oslash D=D1∪D2∪⋅⋅⋅∪Dj,Di∪Dj=⊘,每个子集 D i D_i Di都尽可能保持数据分布的一致性,即从 D D D中通过分层采样得到,然后每次用 k − 1 k-1 k−1给子集的并集作为训练集,余下的那个子集作为测试集;这样就可以得到 k k k组训练/测试集。
- 自助法(bootstrapping)减少训练集规模不同造成的误差。给定包含 m m m个样本的数据集 D D D,我们对它采样,产生数据集 D ′ D' D′:每次随机从 D D D中挑选一个样本,将其拷贝放入 D ′ D' D′,然后再将该样本放回初始数据集 D D D,这个过程重复 m m m次后,我们得到大小为 m m m的数据集 D ′ D' D′,通过自助采样,约有 36.8 % 36.8\% 36.8%的样本未出现在采样数据集中,于是我能将 D ′ D' D′用作训练集,而 D / D ′ D/D' D/D′作为测试集,这适合数据小,难以划分的场景。
2. 调参与最终模型
我们常把学得模型在实际使用中遇到的数据称为测试数据。
模型评估与选择中的数据集称为验证集。
- 性能度量
回归任务,最常使用的是均方误差(Mean Squared Error, MSE).
$ E(f;D)=\frac{1}{m}\sum_{i=1}^{m}(f(x_i)-y_i)^2$
- 错误率与精度
错误率是分类错误的样本数占样本总数的比例,精度 a c c acc acc则是正确的样本数占样本总数的比例。
术语: FP:真正例 FN:假反例 FP:假正例 TN:真反例
查准率 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图像来评价机器学习模型的优劣。若一个曲线包住另一个曲线,则证明前者性能好于后者。“平衡点”(BEP)就是查准率等于查全率的点。
更常用的是
F
1
F1
F1度量(调和平均):
F
1
=
2
×
P
×
R
P
+
R
F1=\frac{2×P×R}{P+R}
F1=P+R2×P×R,其原型是加权调和平均
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,
β
\beta
β度量了查全率对查准率的相对重要性。为了更好描述不同错误造成影响的大小,我们引入代价敏感 ,
c
o
s
t
01
cost_{01}
cost01表示
T
N
TN
TN的代价,
c
o
s
t
10
cost_{10}
cost10表示
F
P
FP
FP的代价。正例代价。
$$
P(+)=\frac{p×cost_{01}}{p×cost_{01}+(1-p)×cost_{10}}
$$
泛化错误率为 ϵ \epsilon ϵ,而测试错误率 ϵ ^ \hat{\epsilon} ϵ^意味着在 m m m给测试样本中恰有 ϵ ^ × m \hat{\epsilon}×m ϵ^×m个错误数据。
-
比较检验
- 假设检验
我们在实际任务中不知道学习器的泛化错误率,但是可以根据测试错误率推出泛化错误率的分布。泛化错误率为 ϵ \epsilon ϵ,测试错误率 ϵ ^ \hat{\epsilon} ϵ^,对于m个测试样本,根据概率论知识,我们知道 学习器测得测试错误率为 ϵ ^ \hat{\epsilon} ϵ^的概率是
P ( ϵ ^ ; ϵ ) = ( m ϵ ^ × m ) ϵ ϵ ^ × m ( 1 − ϵ ) ϵ ^ ( 1 − m ) P(\hat{\epsilon};\epsilon)=\binom{m}{\hat{\epsilon}×m}\epsilon^{\hat{\epsilon}×m}(1-\epsilon)^{\hat{\epsilon}(1-m)} P(ϵ^;ϵ)=(ϵ^×mm)ϵϵ^×m(1−ϵ)ϵ^(1−m)
对 P P P求导可知,在 ϵ = ϵ ^ \epsilon=\hat{\epsilon} ϵ=ϵ^时最大,符合二项分布。
我们可使用“二项检验”( b i n o m i a l t e s t binomial \ test binomial test)来对 " ϵ < ϵ 0 \epsilon\lt \epsilon_0 ϵ<ϵ0"进行检验,则在 1 − α 1-\alpha 1−α(置信度 c o n f i d e n c e confidence confidence)的概率内所能观测到的最大错误概率。若测试错误率 ϵ ^ < ϵ \hat{\epsilon}<{\epsilon} ϵ^<ϵ,即能以 1 − α 1-\alpha 1−α的置信度认为,学习器错误率不大于 ϵ 0 \epsilon_0 ϵ0
测试错误率 ϵ ^ < ϵ \hat{\epsilon}<{\epsilon} ϵ^<ϵ,即能以 1 − α 1-\alpha 1−α的置信度认为,学习器错误率不大于 ϵ 0 \epsilon_0 ϵ0