在使用机器学习模型进行预测时,一个不可避免的问题是我们始终会遇到误差。那么误差到底是怎么产生的呢?

其实误差的来源有两方面:

偏差(Bias):数据偏离平均值的差。

方差(Variance):随机变数和其数学期望(即均值)之间的偏离程度,多指数据的波动。

1、偏差与方差的估计

对于样本 x ,假设其均值为 mu ,方差为 sigma^{2} ,下面对这两个两进行估计。

从样本 x中取N个样本{ x^{1},x^{2},x^{3}......x^{N} }

计算N个点的平均值m,用m来估计mu,显然平均值m并不等于mu

接著,计算m的期望

E(m)  = E(frac{1}{N}sum_{n=1}^{N}{x^{n}}) = frac{1}{N}N.E(x^{n}) = mu

可以看出,m是mu的无偏估计(估计量的期望与样本的期望相等)。

再来看m的方差

Var(m) = frac{sigma^{2}}{N}

即,样本量越大,m的方差就越小。

再来用 s^{2} 估计sigma^{2}

s^{2}  = frac{1}{N}sum_{n = 1}^{N}({x^{n}-m)^{2}}

来看s^{2}的期望

E(s^{2}) = frac{N-1}{N}sigma^{2} (具体推导过程可参照概率论里面相关章节)

可见,E(s^{2})是比样本方差 sigma^{2} 小,二者并不相等,属于有偏估计。

2、方差与偏差的四种状态

偏差与方差有以下4中不同的存在状态。

考虑不同的训练集,假设有100个数据集。采用 y = b+wx 和考虑复杂一点的模型 y = b+w_{1}x+w{2}x^{2}+w{3}x^{3}+w{4}x^{4}+w{5}x^{5}他们的偏差和方差如下图所示:

只采用一次项来拟合的时候,可以看到条线较集中,即方差较小,但是蓝色的那条直线并不能较好地拟合样本数据(黑色的线),即偏差较大。

当模型变得复杂,采用五次项之后,得到的红线变得非常杂乱,即方差较大,但是平均起来蓝色的线能够较接近黑色的样本数据(黑色的线),即偏差较小。

简单的模型受到数据的影响较小。

综合来讲

简单模型是高偏差、低方差的

复杂模型是低偏差、高方差的

在模型变复杂的过程中,需要找到一个临界点,平衡方差与偏差。

在模型逐渐复杂的过程中,一般情况下会越来越接近实际情况,偏差会越来越小,即曲线越描越准,但与此同时,每一次描的线的差别也会越来越大,即方差越变越大。

3、偏差与方差的处理

模型过于简单时,不能较好的拟合数据,此时的误差主要取决于偏差,此时称模型为欠拟合;随著模型越来越复杂,会越倾向于拟合更多的数据点,甚至是一些离群的点,波动较大,,误差主要取决于方差。这种模型往往在训练集上表现得非常良好,但是到了测试集,误差会明显变大,此时称模型为过拟合

对于偏差大,即欠拟合的情况:

(1)选取更多的特征加入训练;

(2)选取更加复杂的模型

对于方差大,即过拟合的情况:

(1)增加训练集的数据量,不会影响偏差,但有时候获取数据很难。

(2)正则化,模型过于偏向正则项可能影响偏差。

(3)使用多种模型训练数据,采用交叉验证等方式选取最终模型。

本文参考国立台湾大学2017年机器学习第二课(错误来自于哪里?)

推荐阅读:

相关文章