1. 请用一个具体的案例解释什么是偏差和方差。
Error2 = Bias2 + Variance + Noise
Error反映的是整个模型的准确度,Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。
举一个例子,一次打靶实验,目标是为了打到10环,但是实际上只打到了7环,那么这里面的Error就是3。具体分析打到7环的原因,可能有两方面:一是瞄准出了问题,比如实际上射击瞄准的是9环而不是10环;二是枪本身的稳定性有问题,虽然瞄准的是9环,但是只打到了7环。那么在上面一次射击实验中,Bias就是1,反应的是模型期望与真实目标的差距,而在这次试验中,由于Variance所带来的误差就是2,即虽然瞄准的是9环,但由于本身模型缺乏稳定性,造成了实际结果与模型期望之间的差距[1]。
2. 偏差与方差和误差之间的关系。
测试均方误差的期望值可以分解为的方差、的偏差平方和误差项的方差:
E
(
y
0
−
f
^
(
x
0
)
)
2
=
Var
(
f
^
(
x
0
)
)
+
[
Bias
(
f
^
(
x
0
)
)
]
2
+
Var
(
ε
)
E\left(y_{0}-\hat{f}\left(x_{0}\right)\right)^{2}=\operatorname{Var}\left(\hat{f}\left(x_{0}\right)\right)+\left[\operatorname{Bias}\left(\hat{f}\left(x_{0}\right)\right)\right]^{2}+\operatorname{Var}(\varepsilon)
E(y0−f^(x0))2=Var(f^(x0))+[Bias(f^(x0))]2+Var(ε)
偏差度量的是单个模型的学习能力,而方差度量的是同一个模型在不同数据集上的稳定性。“偏差-方差分解”说明:泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。
一般而言,增加模型的复杂度,会增加模型的方差,但是会减少模型的偏差,我们要找到一个方差–偏差的权衡,使得测试均方误差最小。
3. 训练误差与测试误差之间的联系与区别,如何估计测试误差。
如果我们所用的数据是训练集上的数据,那么这个误差为训练均方误差,如果我们使用测试集的数据计算的均方误差,我们称为测试均方误差。一般而言,我们并不关心模型在训练集上的训练均方误差,我们关心的是模型面对未知的样本集,即测试集上的测试误差,我们的目标是使得我们建立的模型在测试集上的测试误差最小。
测试误差进行估计方式有两种:训练误差修正与交叉验证。
(1) 训练误差修正:
前面的讨论我们已经知道,模型越复杂,训练误差越小,测试误差先减后增。因此,我们先构造一个特征较多的模型使其过拟合,此时训练误差很小而测试误差很大,那这时我们加入关于特征个数的惩罚。因此,当我们的训练误差随着特征个数的增加而减少时,惩罚项因为特征数量的增加而增大,抑制了训练误差随着特征个数的增加而无休止地减小。具体的数学量如下:
①
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),其中d为模型特征个数,
R
S
S
=
∑
i
=
1
N
(
y
i
−
f
^
(
x
i
)
)
2
,
σ
^
2
RSS = \sum\limits_{i=1}^{N}(y_i-\hat{f}(x_i))^2,\hat{\sigma}^2
RSS=i=1∑N(yi−f^(xi))2,σ^2为模型预测误差的方差的估计值,即残差的方差。
② AIC赤池信息量准则:
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)
③ BIC贝叶斯信息量准则:
B
I
C
=
1
n
(
R
S
S
+
l
o
g
(
n
)
d
σ
^
2
)
BIC = \frac{1}{n}(RSS + log(n)d\hat{\sigma}^2)
BIC=n1(RSS+log(n)dσ^2)
AIC & BIC的比较
1、共性
构造这些统计量所遵循的统计思想是一致的,就是在考虑拟合残差的同事,依自变量个数施加“惩罚”。
2、不同点
BIC的惩罚项比AIC大,考虑了样本个数,样本数量多,可以防止模型精度过高造成的模型复杂度过高。
AIC和BIC前半部分是一样的,BIC考虑了样本数量,样本数量过多时,可有效防止模型精度过高造成的模型复杂度过高。
(2) 交叉验证:
前面讨论的对训练误差修正得到测试误差的估计是间接方法,这种方法的桥梁是训练误差,而交叉验证则是对测试误差的直接估计。交叉验证比训练误差修正的优势在于:能够给出测试误差的一个直接估计。在这里只介绍K折交叉验证:我们把训练样本分成K等分,然后用K-1个样本集当做训练集,剩下的一份样本集为验证集去估计由K-1个样本集得到的模型的精度,这个过程重复K次取平均值得到测试误差的一个估计。
4. 岭回归和Lasso回归的异同点。
参考资料:浅谈范数正则化[2]
5. 如果使用PCA降维前是一个三维的椭球,那么把该图形降维成二维是一个什么样的图形。
6. 尝试使用对偶理论和核函数对PCA进行非线性拓展,使得PCA变成非线性降维。
7. 本教程讲述的三种模型简化的方法之间有什么异同点。
L1\L2与AIC\BIC他们的共性是都是为了找到更好的模型。区别是L1, L2在模型训练的过程中通过加约束(加入惩罚项)来控制特征的个数,达到防止模型过拟合的目的。而AIC,BIC是在已经训练好的不同模型里面筛选出相对最好的那个模型。
但是正则化和AIC/BIC的方法都是基于原始特征𝑥1,…,𝑥𝑝得到的,PCA降维是一种新的方法:将原始的特征空间投影到一个低维的空间实现变量的数量变少,如:将二维的平面投影至一维空间。
References:
[1]: https://www.zhihu.com/question/27068705
[2]: https://www.cnblogs.com/kailugaji/p/14633265.html