学习笔记——Bias-variance

来源:互联网 发布:淘宝什么牌子芋圆好吃 编辑:程序博客网 时间:2024/05/16 04:40

Bias-variance 分解是机器学习中一种重要的分析技术。给定学习目标和训练集规模,它可以把一种学习算法的期望误差分解为三个非负项的和,即本真噪音、bias和 variance。

本真噪音是任何学习算法在该学习目标上的期望误差的下界;( 任何方法都克服不了的误差)
bias(偏倚) 度量了某种学习算法的平均估计结果所能逼近学习目标的程度;(独立于训练样本的误差,刻画了匹配的准确性和质量:一个高的偏差意味着一个坏的匹配)
variance (方差)则度量了在面对同样规模的不同训练集时,学习算法的估计结果发生变动的程度。(相关于观测样本的误差,刻画了一个学习算法的精确性和特定性:一个高的方差意味着一个弱的匹配)

Boosting通过样本变权全部参与,故Boosting 主要是降低 bias (同时也有降低 variance 的作用,但以降低 bias为主) ;而 Bagging 通过样本随机抽样部分参与(单个学习器训练),故bagging主要是降低 variance

Wiki上面的解释:
http://en.wikipedia.org/wiki/Bias_of_an_estimator
以及其他方面的解释:
http://www.aiaccess.net/English/Glossaries/GlosMod/e_gm_bias_variance.htm
http://nlp.stanford.edu/IR-book/html/htmledition/the-bias-variance-tradeoff-1.html

CSDN上面的资料:(转载)
统计学习中有一个重要概念叫做residual sum-of-squares:

RSS看起来是一个非常合理的统计模型优化目标。但是考虑K-NN的例子,在最近邻的情况下(K=1),RSS=0,是不是KNN就是一个完美的模型了呢,显然不是KNN有很多明显的问题,比如对训练数据量的要求很大,很容易陷入维度灾难中。

KNN的例子说明仅仅优化RSS是不充分的,因为针对特定训练集合拟合很好的model,并不能说明这个model的泛化能力好,而泛化能力恰恰又是机器学习模型的最重要的要求。真正能说明问题的不是RSS,因为它只是一个特定训练集合,而是在多个训练结合统计得出的RSS的期望,MSE(mean squared error),而MSE又可以拆分成bias和variance两部分。

从上面的式子可以看出,低偏倚的model在训练集合上更加准确,低方差的model在不同的训练集合上性能更加稳定。举两个极端的例子:
1、记住训练集合上所有的点的label,这样的系统低偏倚,高方差
2、无论输入是什么,总是预测一个相同的,这样的系统高偏倚,低方差。
因此在一个model的选择上需要进行偏倚和方差的权衡。

显然复杂的模型能更好的拟合训练集合能更好的拟合训练集合上的点,但是同时高复杂度的模型泛化能力差,造成了高方差。横坐标的右侧是过拟合overfit的情况,而左侧是欠拟合underfit的情况。

可见如果目标函数只是优化RSS那么在有限训练集合的情况下,很难训练出一个效果好的模型,想一下在分类中表现比较好的SVM基于maxiumu margin的思想,而maxent考虑的是熵的最大,均是增加泛化能力,降低模型复杂度的手段。一个较好的选择是改进优化函数,在优化的同时,惩罚复杂模型。

对于训练集,当d较小时,模型拟合程度更低,误差较大;随着d的增长,拟合程度提高,误差减小。
对于交叉验证集,当d较小时,模型拟合程度低,误差较大;但是随着d的增长,误差呈现先减小后增大的趋势,转折点是我们的模型开始过拟合训练数据集的时候。
这里写图片描述

训练集误差和交叉验证集误差近似时:高偏倚/欠拟合

交叉验证集误差远大于训练集误差时:高偏差/过拟合

0 0
原创粉丝点击