您可以在我的个人博客 blog.pengwill.info 获得更好的阅读体验。
文章目录
思维导图
系统的误差来自两个方面,Bias和Variance
数理统计中的方差和偏差
当我们需要随机变量 x x x所服从的总体分布的均值和方差的时候,有不同的估计方法。然而在选择估计量进行估计的时候,可能会有偏差,据此可以分为有偏估计和无偏估计。下面为均值和方差的估计方法。
估计均值 μ \mu μ
- 首先从总体抽样,获得一个样本集,如抽 N N N个样本 X 1 , X 2 , … , X N X^1,X^2,\dots,X^N X1,X2,…,XN构成一个样本集
- 计算此样本集的均值 m = ∑ i = 1 N X i N m=\frac{\sum^N_{i=1}X_i}{N} m=N∑i=1NXi
- 多次采样,即得出多个样本集,如共得到 K K K个样本集,计算样本集均值的均值 E [ m ] = E [ 1 N ∑ i = 1 N X i ] = 1 N E [ ∑ i = 1 N X i ] E[m] = E[\frac{1}{N}\sum_{i=1}^{N}X_i]=\frac{1}{N}E[\sum_{i=1}^{N}X_i] E[m]=E[N1∑i=1NXi]=N1E[∑i=1NXi]
上述表述即为中心极限定理, m m m为总体均值 μ \mu μ的一个无偏估计。
估计方差 σ 2 \sigma^2 σ2
- 首先从总体抽样,获得一个样本集,如抽 N N N个样本 X 1 , X 2 , … , X N X^1,X^2,\dots,X^N X1,X2,…,XN构成一个样本集
- 计算此样本集的均值 m = ∑ i = 1 N X i N m=\frac{\sum^N_{i=1}X_i}{N} m=N∑i=1NXi,计算样本集的二阶中心矩 S 2 = 1 N ∑ i = 1 N ( X i − m ) 2 S^2=\frac{1}{N}\sum_{i=1}^{N}(X_i-m)^2 S2=N1∑i=1N(Xi−m)2
- 多次采样,即得出多个样本集,如共得到 K K K个样本集,计算样本集二阶中心距的均值 E [ S 2 ] = 1 N E [ ∑ i = 1 N ( X i − m ) 2 ] E[S^2]=\frac{1}{N}E[\sum_{i=1}^{N}(X_i-m)^2] E[S2]=N1E[∑i=1N(Xi−m)2]
- 此时的估计为有偏估计,与真实的方差之间的差别为 E [ S 2 ] = N − 1 N σ 2 E[S^2]=\frac{N-1}{N}\sigma^2 E[S2]=NN−1σ2
由此可知 S 2 S^2 S2为总体方差的 σ 2 \sigma^2 σ2的一个有偏估计。
为什么会有这样的结果
假定我们对于参数为 θ \theta θ的某个分别连续采样,想要通过观测值来估计参数 θ \theta θ,估计的到的参数记为 θ ^ \hat{\theta} θ^,那么估计的偏差为 B i a s [ θ ^ ] = E [ θ ^ ] − θ Bias[\hat{\theta}]=E[\hat{\theta}]-\theta Bias[θ^]=E[θ^]−θ。那么无偏估计为 B i a s [ θ ^ ] = 0 Bias[\hat{\theta}] = 0 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 [ S 2 ] = E [ 1 n ∑ i = 1 n ( X i − m ) 2 ] = E [ 1 n ∑ i = 1 n ( ( X i − μ ) − ( m − μ ) ) 2 ] = E [ 1 n ∑ i = 1 n ( ( X i − μ ) 2 − 2 ( m − μ ) ( X i − μ ) + ( m − μ ) 2 ) ] = E [ 1 n ∑ i = 1 n ( X i − μ ) 2 − 2 n ( m − μ ) ∑ i = 1 n ( X i − μ ) + 1 n ( m − μ ) 2 ⋅ n ] = E [ 1 n ∑ i = 1 n ( X i − μ ) 2 − 2 n ( m − μ ) ∑ i = 1 n ( X i − μ ) + ( m − μ ) 2 ] = E [ 1 n ∑ i = 1 n ( X i − μ ) 2 − 2 n ( m − μ ) ⋅ n ⋅ ( m − μ ) + ( m − μ ) 2 ] = E [ 1 n ∑ i = 1 n ( X i − μ ) 2 − 2 ( m − μ ) 2 + ( m − μ ) 2 ] = E [ 1 n ∑ i = 1 n ( X i − μ ) 2 − ( m − μ ) 2 ] = E [ 1 n ∑ i = 1 n ( X i − μ ) 2 ] − E [ ( m − μ ) 2 ] = σ 2 − E [ ( m − μ ) 2 ] = ( 1 − 1 n ) σ 2 < σ 2 \begin{aligned} \mathrm{E}\left[S^{2}\right] &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(X_{i}-m\right)^{2}\right]=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(\left(X_{i}-\mu\right)-(m-\mu)\right)^{2}\right] \\\ &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(\left(X_{i}-\mu\right)^{2}-2(m-\mu)(X_{i}-\mu)+(m-\mu)^{2}\right)\right] \\\ &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}-\frac{2}{n}(m-\mu) \sum_{i=1}^{n}\left(X_{i}-\mu\right)+\frac{1}{n}(m-\mu)^{2} \cdot n\right] \\\ &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}-\frac{2}{n}(m-\mu) \sum_{i=1}^{n}\left(X_{i}-\mu\right)+(m-\mu)^{2}\right] \\\ &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}-\frac{2}{n}(m-\mu) \cdot n \cdot(m-\mu)+(m-\mu)^{2}\right] \\\ &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}-2(m-\mu)^{2}+(m-\mu)^{2}\right] \\\ &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}-(m-\mu)^{2}\right] \\\ &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}\right]-\mathrm{E}\left[(m-\mu)^{2}\right] \\\ &=\sigma^{2}-\mathrm{E}\left[(m-\mu)^{2}\right]=\left(1-\frac{1}{n}\right) \sigma^{2}<\sigma^{2} \end{aligned} 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 m m和总体均值 μ \mu μ相等时,二阶中心矩的期望和总体方差 σ 2 \sigma^2 σ2相等,否则二阶中心距期望小于总体方差 σ 2 \sigma^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个误差的均值,作为这个模型的平均误差。选取平均误差最小的作为最后的模型。