偏差和方差理论
1. 训练误差和测试误差
训练误差针对与训练过程中的训练集产生的误差,通过误差函数进行计算,但是我们更加重视测试误差,测试误差体现了模型的泛化能力。
2. 偏差和方差
第一次接触这个概念,参考一个知乎的解释:
首先 Error = Bias + VarianceError反映的是整个模型的准确度,Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。举一个例子,一次打靶实验,目标是为了打到10环,但是实际上只打到了7环,那么这里面的Error就是3。具体分析打到7环的原因,可能有两方面:一是瞄准出了问题,比如实际上射击瞄准的是9环而不是10环;二是枪本身的稳定性有问题,虽然瞄准的是9环,但是只打到了7环。那么在上面一次射击实验中,Bias就是1,反应的是模型期望与真实目标的差距,而在这次试验中,由于Variance所带来的误差就是2,即虽然瞄准的是9环,但由于本身模型缺乏稳定性,造成了实际结果与模型期望之间的差距。
E
(
y
−
f
(
x
0
)
)
2
=
V
a
r
(
f
(
x
0
)
)
+
[
B
i
a
s
(
f
(
x
0
)
)
]
2
+
V
a
r
(
ϵ
)
E(y−f(x_0))2=Var(f(x_0))+[Bias(f(x_0))]2+Var(\epsilon)
E(y−f(x0))2=Var(f(x0))+[Bias(f(x0))]2+Var(ϵ)
我们的测试均方误差的期望值可以分解为
f
(
x
0
)
f(x_0)
f(x0)的方差、
f
(
x
0
)
f(x_0)
f(x0)的偏差平方和误差项
ϵ
\epsilon
ϵ 的方差。为了使得模型的测试均方误差达到最小值,也就是同时最小化偏差的平方和方差。
3.估计测试误差的方式
间接估计:训练误差修正
C
p
=
1
N
(
R
S
S
+
2
d
σ
^
2
)
C_p=\frac{1}{N}(RSS+2d \hat{\sigma}^2)
Cp=N1(RSS+2dσ^2)
R
S
S
=
∑
i
=
1
n
(
y
i
−
f
^
(
x
i
)
2
)
RSS=\sum_{i=1}^n (y_i-\hat{f}(x_i)^2)
RSS=∑i=1n(yi−f^(xi)2)
A
I
C
=
1
d
σ
^
2
(
R
S
S
+
2
d
σ
^
2
)
AIC=\frac{1}{d \hat \sigma^2}(RSS+2d \hat \sigma^2)
AIC=dσ^21(RSS+2dσ^2)
B
I
C
=
1
d
(
R
S
S
+
l
o
g
(
n
)
d
σ
^
2
)
BIC=\frac{1}{d}(RSS+log(n)d \hat \sigma^2)
BIC=d1(RSS+log(n)dσ^2)
其中BIC的对于过拟合的惩罚最重,相对的模型会更加简单
直接估计:交叉验证
举例说明交叉验证的操作流程,K折交叉验证,初始采样分割成K个子样本,一个单独的子样本被保留作为验证模型的数据,其他K-1个样本用来训练。交叉验证重复K次,每个子样本验证一次,平均K次的结果或者使用其它结合方式,最终得到一个单一估测。这个方法的优势在于,同时重复运用随机产生的子样本进行训练和验证,每次的结果验证一次,10折交叉验证是最常用的
4.特征选择
测试误差能够被合理的估计出来以后,我们做特征选择的目标就是:从p个特征中选择m个特征,使得对应的模型的测试误差的估计最小。
最优子集选择:
(i) 记不含任何特征的模型为 𝑀0 ,计算这个 𝑀0 的测试误差。
(ii) 在 𝑀0 基础上增加一个变量,计算p个模型的RSS,选择RSS最小的模型记作 𝑀1 ,并计算该模型 𝑀1 的测试误差。
(iii) 再增加变量,计算p(p-1)个模型的RSS,并选择RSS最小的模型记作 𝑀2 ,并计算该模型 𝑀2 的测试误差。
(iv) 重复以上过程知道拟合的模型有p个特征为止,并选择p+1个模型 {𝑀0,𝑀1,…,𝑀𝑝} 中测试误差最小的模型作为最优模型。
这个方法对于内存占用过高,为指数的复杂度可使用向前逐步选择法,复杂度为多项式级别
向前逐步选择:
最优子集选择虽然在原理上很直观,但是随着数据特征维度p的增加,子集的数量为 2𝑝 ,计算效率非常低下且需要的计算内存也很高,在大数据的背景下显然不适用。因此,我们需要把最优子集选择的运算效率提高,因此向前逐步选择算法的过程如下:
(i) 记不含任何特征的模型为 𝑀0 ,计算这个 𝑀0 的测试误差。
(ii) 在 𝑀0 基础上增加一个变量,计算p个模型的RSS,选择RSS最小的模型记作 𝑀1 ,并计算该模型 𝑀1 的测试误差。
(iii) 在最小的RSS模型下继续增加一个变量,选择RSS最小的模型记作 𝑀2 ,并计算该模型 𝑀2 的测试误差。
(iv) 以此类推,重复以上过程知道拟合的模型有p个特征为止,并选择p+1个模型 {𝑀0,𝑀1,…,𝑀𝑝} 中测试误差最小的模型作为最优模型。
5.正则化操作
正则化操作也叫压缩估计,过程是通过设置惩罚项使得多项式的系数趋于0,降低模型的复杂度的目的,正则化可分为L1正则和L2正则
L2回归
j
(
w
)
=
∑
i
=
1
n
(
y
i
−
w
0
−
∑
j
=
1
p
w
j
x
i
j
)
+
λ
∑
j
=
1
p
w
j
2
j(w)=\sum_{i=1}^n(y_i-w_0-\sum_{j=1}^pw_jx_{ij})^+\lambda\sum_{j=1}^p w_j^2
j(w)=∑i=1n(yi−w0−∑j=1pwjxij)+λ∑j=1pwj2
(
λ
≥
0
)
(\lambda \geq 0)
(λ≥0)
L1回归
j
(
w
)
=
∑
i
=
1
n
(
y
i
−
w
0
−
∑
j
=
1
p
∣
w
j
∣
)
+
λ
∑
j
=
1
p
w
j
2
j(w)=\sum_{i=1}^n(y_i-w_0-\sum_{j=1}^p |w_j|)^+\lambda\sum_{j=1}^p w_j^2
j(w)=∑i=1n(yi−w0−∑j=1p∣wj∣)+λ∑j=1pwj2
(
λ
≥
0
)
(\lambda \geq 0)
(λ≥0)
(这几天时间比较紧张,有空一定把笔记和作业补全)