统计学习方法-李航(第一章3)
模型评估与模型选择
训练误差与测试误差
统计学习的目的是使学到的模型不仅对已知数据而且对未知数据都能优很好的预测能力。
当损失函数是0-1损失时,测试误差就变成了常见的测试数据集上的误差率(error rate)。
e
t
e
s
t
=
1
N
′
I
(
Y
i
≠
f
^
(
x
i
)
)
e_{test}=\frac{1}{N'}I(Y_i\neq\hat{f}(x_i))
etest=N′1I(Yi̸=f^(xi))
这里I是指示函数(indicator function),即
Y
i
≠
f
^
(
x
i
)
Y_i\neq\hat{f}(x_i)
Yi̸=f^(xi)时为1,否则为0.
相应的,准确率为:
r
t
e
s
t
=
1
N
′
I
(
Y
i
=
f
^
(
x
i
)
)
r_{test}=\frac{1}{N'}I(Y_i=\hat{f}(x_i))
rtest=N′1I(Yi=f^(xi))
显然
e
t
e
s
t
+
r
t
e
s
t
=
1
e_{test}+r_{test}=1
etest+rtest=1
测试误差反映了学习方法对未知的测试数据集的预测能力,是学习的概念。测试误差小具有更好的预测能力。
过拟合与模型选择
选择的模型要与真模型参数个数相同,所选择的模型的参数向量与真模型的参数向量相近。
过拟合是指学习时选择的模型所包含的参数过多,以致于出现这一模型对已知数据预测的很好,对未知数据预测的很差的情况。
例如:多项式拟合
在多项式函数拟合中,随着多项式次数(模型复杂度)的增加,训练误差会减小,直至趋向于0,但是测试误差会随着多项式次数的增加先减小后增大。最终目的是使测试误差达到最小。
当选择的模型复杂度过大时,过拟合现象就会发生。在学习时如何选取最优的模型,达到测试误差最小的目的。方法:正则化和交叉验证。
正则化和交叉验证
正则化
正则化是结构风险最小化策略的实现,正则化项一般是模型复杂度的单调递增函数。比如正则化项可以是模型参数向量的参数。
一般形式:
min
f
∈
F
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
\min_{f\in F} \frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))+\lambda J(f)
f∈FminN1i=1∑NL(yi,f(xi))+λJ(f)
正则化项可以取不同的形式。
例如:回归问题
损失函数是平方损失,正则化项可以是参数向量的
L
2
L_2
L2范数:
L
(
W
)
=
1
N
∑
i
=
1
N
L
(
f
(
x
i
,
w
)
−
y
i
)
+
λ
2
∣
∣
w
∣
∣
2
L(W)= \frac{1}{N}\sum_{i=1}^{N}L(f(x_i,w)-y_i)+\frac{\lambda}{2} ||w||^2
L(W)=N1i=1∑NL(f(xi,w)−yi)+2λ∣∣w∣∣2
这里
∣
∣
w
∣
∣
||w||
∣∣w∣∣表示参数向量
w
w
w的
L
2
L_2
L2范数。
正则化项也可以是
L
1
L_1
L1范数:
L
(
W
)
=
1
N
∑
i
=
1
N
L
(
f
(
x
i
,
w
)
−
y
i
)
+
λ
∣
∣
w
∣
∣
1
L(W)= \frac{1}{N}\sum_{i=1}^{N}L(f(x_i,w)-y_i)+\lambda||w||_1
L(W)=N1i=1∑NL(f(xi,w)−yi)+λ∣∣w∣∣1
这里
∣
∣
w
∣
1
∣
||w|_1|
∣∣w∣1∣表示参数向量
w
w
w的
L
1
L_1
L1范数。
正则化的作用是选择经验风险与模型复杂度同时较小的模型。正则化符合奥卡姆剃刀准则。
交叉验证
样本充足情况下,模型选择随机将数据集分成:训练集、验证集和测试集。分别用来训练墨西哥、选择模型和评估模型。
样本不足情况下,可采用交叉验证方法,即重复的使用数据;把给定的数据进行切分,切分的数据集组合为训练集和验证集。
简单交叉验证
随机分为训练集和测试集。(例如3/7分)
S折交叉验证(S-fold cross validation)
随机蒋数据切分为 S S S个互不相交的大小相同数据集;然后利用 S − 1 S-1 S−1个子集的数据训练模型,余下的测试。蒋这一过程重复 S S S次,选出平均测试误差最小的。
留一交叉验证
S S S折交叉验证的的特殊情形 S = N S=N S=N,往往数据缺乏的情况下使用。 N N N为给定数据集容量。