您可以在我的个人博客 blog.pengwill.info 获得更好的阅读体验。
思维导图
![在这里插入图片描述]()
系统的误差来自两个方面,Bias和Variance
数理统计中的方差和偏差
当我们需要随机变量x所服从的总体分布的均值和方差的时候,有不同的估计方法。然而在选择估计量进行估计的时候,可能会有偏差,据此可以分为有偏估计和无偏估计。下面为均值和方差的估计方法。
估计均值μ
- 首先从总体抽样,获得一个样本集,如抽N个样本X1,X2,…,XN构成一个样本集
- 计算此样本集的均值m=N∑i=1NXi
- 多次采样,即得出多个样本集,如共得到K个样本集,计算样本集均值的均值E[m]=E[N1∑i=1NXi]=N1E[∑i=1NXi]
上述表述即为中心极限定理,m为总体均值μ的一个无偏估计。
估计方差σ2
- 首先从总体抽样,获得一个样本集,如抽N个样本X1,X2,…,XN构成一个样本集
- 计算此样本集的均值m=N∑i=1NXi,计算样本集的二阶中心矩S2=N1∑i=1N(Xi−m)2
- 多次采样,即得出多个样本集,如共得到K个样本集,计算样本集二阶中心距的均值E[S2]=N1E[∑i=1N(Xi−m)2]
- 此时的估计为有偏估计,与真实的方差之间的差别为E[S2]=NN−1σ2
由此可知S2为总体方差的σ2的一个有偏估计。
为什么会有这样的结果
假定我们对于参数为θ的某个分别连续采样,想要通过观测值来估计参数θ,估计的到的参数记为θ^,那么估计的偏差为Bias[θ^]=E[θ^]−θ。那么无偏估计为Bias[θ^]=0的估计。
对于均值的估计偏差
\[
\begin{align*}
E[m] &=\frac{1}{N}E[\sum_{i=1}^{N}X_i] \\ &= \frac{1}{N}\sum_{i=1}^NE(X_i) \\ &=\frac{1}{N}\sum_{i=1}^{N}\mu\&=\mu
\end{align*}
\]
可以看到样本均值即为总体均值,故为无偏估计。
对于方差估计偏差
E[S2] =E[n1i=1∑n(Xi−m)2]=E[n1i=1∑n((Xi−μ)−(m−μ))2]=E[n1i=1∑n((Xi−μ)2−2(m−μ)(Xi−μ)+(m−μ)2)]=E[n1i=1∑n(Xi−μ)2−n2(m−μ)i=1∑n(Xi−μ)+n1(m−μ)2⋅n]=E[n1i=1∑n(Xi−μ)2−n2(m−μ)i=1∑n(Xi−μ)+(m−μ)2]=E[n1i=1∑n(Xi−μ)2−n2(m−μ)⋅n⋅(m−μ)+(m−μ)2]=E[n1i=1∑n(Xi−μ)2−2(m−μ)2+(m−μ)2]=E[n1i=1∑n(Xi−μ)2−(m−μ)2]=E[n1i=1∑n(Xi−μ)2]−E[(m−μ)2]=σ2−E[(m−μ)2]=(1−n1)σ2<σ2
当样本均值m和总体均值μ相等时,二阶中心矩的期望和总体方差σ2相等,否则二阶中心距期望小于总体方差σ2。
话说回来
如果我们对一个量进行估计,若估计的本身就是有偏的,那么无论我们估计的再准,最终结果也会有偏差。这就好比使用二阶中心距来估计总体方差,无论二阶中心距计算的再准,也是会有偏差的(即bias)。使用修正后的公式后则不会出现这个问题。
如果我们在估计时选择无偏估计量,那么如何进一步评价这个估计量的好坏呢?我们一般认为越有效的估计量越好。有效性指的是估计量与总体参数的离散程度,即方差的大小,方差越小,则估计量越有效。
模型的方差和偏差
模型的方差
简单的模型受数据的影响较小,因为简单模型参数少,在数据不同的时候,变化较小。
复杂的模型受数据的影响较大,因为复杂模型参数多,在数据不同的时候,变化较大。
复杂系统的稳定性小,简单模型的稳定性大。
模型的偏差
简单模型的偏差可能会很大,因为简单模型所能表达的有限,故有可能会使得最后的偏差很大。当出现这种情况的时候,这是说明没有很好的拟合数据(underfitting)。
复杂模型的表达能力更强,但是受数据影响较大,即每次得出的模型方差会很大,出现这种情况的时候,说明已经过头拟合了数据(overfitting)。
模型诊断
判断
- 如果模型在训练集上的表现很差(高bias),即不能很好的拟合训练集,则说明模型比较简单,处于欠拟合(underfitting)的状态。
- 如果模型在训练集上的表现很好,但是在测试集上的表现不好(高variance),则说明模型复杂,且处于过拟合(overfitting)的状态。
调整
- 当欠拟合的状态,应该提高模型复杂度,在模型中加入更多的特征。
- 当过拟合的时候,应该增加数据量,或者增加正则项。
模型选择
我们希望找到一个模型,他的方差很小,他的偏差也很小。
划分验证集
将Training Set分为两组,一组为Training Set,另一组为Validation Set(验证集)。首先使用Training Set进行训练,训练出多个模型后,使用Validation Set选择一个误差最小的模型。然后提交这个模型。这个模型在Public Set上的误差可以代表在Private Set上的误差。
切记不要通过Public Set来调整模型。比如在猫狗分类中,查看在Public Set上误分类的猫,来进一步提高猫的分类效果。这样的操作相当于过拟合Public Set,会导致看起来在Public Set上的效果很好,但是最后在Private Set的效果很差,最后训练的模型没有很好的泛化能力。
N折交叉验证
将Training Set平均为N组,每一次训练,都将N组中其中一组作为Validation Set,其余作为Training Set。当训练好多个模型的时候,进行评估时,同样执行N次,每一次用其中的Validation Set评估,计算出误差,最后求出N个误差的均值,作为这个模型的平均误差。选取平均误差最小的作为最后的模型。