您的位置:首页 > 其它

机器学习中偏差和方差的区别

2017-05-05 10:53 148 查看
        今天在看L1和L2正则的相关知识时,看到这样一段话:

        L2与L1的区别在于,L1正则是拉普拉斯先验,而L2正则则是高斯先验。它们都是服从均值为0,协方差为1λ。当λ=0时,即没有先验)没有正则项,则相当于先验分布具有无穷大的协方差,那么这个先验约束则会非常弱,模型为了拟合所有的训练集数据, 参数w可以变得任意大从而使得模型不稳定,即方差大而偏差小。λ越大,标明先验分布协方差越小,偏差越大,模型越稳定。即,加入正则项是在偏差bias与方差variance之间做平衡tradeoff。

        让我很困惑的是为什么参数w任意大时模型不稳定会出现方差大偏差小的情况,那么方差和偏差作为两种度量方式有什么区别呢?

        首先看了下百度百科中偏差的解释为:偏差又称为表观误差,是指个别测定值与测定的平均值之差。感觉这个解释并不太应用于机器学习中,那么这句话在机器学习中的意思应该是预测值与真实值之间的距离。

        在知乎上看到了几种解释,还是比较有助于自己理解的:

         1、偏差:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据,如下图第二行所示。

              方差:描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散,如下图右列所示。<img src="https://pic1.zhimg.com/162bbe3ae6c8f46da4f4e05edea2d9fc_b.jpg" data-rawwidth="936" data-rawheight="886" class="origin_image
zh-lightbox-thumb" width="936" data-original="https://pic1.zhimg.com/162bbe3ae6c8f46da4f4e05edea2d9fc_r.jpg">参考:



2、从上面的解释仅仅能够知道偏差和方差的区别,还是不能够解释文章开始提出的问题,再来看下面这个解释:

Bias:误差,对象是单个模型,期望输出与真实标记的差别(可以解释为描述了模型对本训练集的拟合程度)

Variance:方差,对象是多个模型(这里更好的解释是换同样规模的训练集,模型的拟合程度怎么样;也可以说方差是刻画数据扰动对模型的影响,描述的是训练结果的分散程度)

从同一个数据集中,用科学的采样方法得到几个不同的子训练集,用这些训练集训练得到的模型往往并不相同。



以上图为例:

1. 左上的模型偏差最大,右下的模型偏差最小;

2. 左上的模型方差最小,右下的模型方差最大(根据上面红字的解释这里就很好理解了)

一般来说,偏差、方差和模型的复杂度之间的关系是这样的:



实际中,我们需要找到偏差和方差都较小的点。

XGBOOST中,我们选择尽可能多的树,尽可能深的层,来减少模型的偏差;

通过cross-validation,通过在验证集上校验,通过正则化,来减少模型的方差

从而获得较低的泛化误差。

到这里,上面提到的问题就就迎刃而解了,即参数w变大,会使模型变得更复杂(即过拟合情况),拟合的更好,故偏差会变小;而对于数据的扰动会更加敏感,所以方差会变大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐