偏差和方差以及偏差方差权衡(Bias Variance Trade off)

当我们在机器学习领域进行模型训练时,出现的误差是如何分类的?

我们首先来看一下,什么叫偏差(Bias),什么叫方差(Variance):

这是一张常见的靶心图

可以看左下角的这一张图,如果我们的目标是打靶子的话,我们所有的点全都完全的偏离了这个中心的位置,那么这种情况就叫做偏差

再看右上角这张图片,我么们的目标是右上角这张图片中心的红色位置,我们射击的点都围绕在这个红色的点的周围,没有大的偏差,但是各个点间过于分散不集中,就是有非常高的方差

我们进行机器学习的过程中,大家可以想象,我们实际要训练的那个模型都是要预测一个问题,这个问题本身我们就可以理解成是这个靶子的中心,而我们根据数据来拟合一个模型,进而预测这个问题,我们拟合的这个模型其实就是我们打出去的这些枪,那么我们的模型就有可能犯偏差和方差这样两种错误

一般来说我们说我们训练一个模型,这个模型会有误差,这个误差通常来源于三方面 :

模型误差 = 偏差(Bias) + 方差(Variance) + 不可避免的误差

不可避免的误差: 客观存在的误差,例如采集的数据的噪音等,是我们无法避免的

偏差和方差这两个问题只是和我们的算法和我们训练的模型相关的两个问题,也就是说我们训练一个模型它有偏差,主要的原因就在于我们很有可能对这个问题本身的假设是不正确的,那么最典型的例子就是,如果我们针对非线性的数据或者说是非线性的问题,使用诸如线性回归这种现象的方法的话,那显然会产生非常高的偏差,那么在我们现实的环境中欠拟合(underfitting)就是这样的一个例子.

还有典型的一个例子就是你训练数据所采用的那个特征,其实跟这个问题完全没有关系,比如说我们想预测一个学生的考试成绩,但是呢,我们是用这个学生的名字来预测他的考试成绩,那么显然一定是高偏差的,因为这个特征本身离我们要预测的那个问题的目标考试成绩之间是高度不相关的

方差在机器学习的过程中它的表现就在于数据的一点点的扰动都会极大的影响我们的模型,换句话说我们的模型没有完全的学习到这个问题的实质这个中心而学习到了很多的噪音,通常来讲我们的模型具有较高的方差的原因是我们的模型太过复杂,比如说高阶多项式回归这样的例子,过拟合(overfitting)就会极大的引入方差

  • 有一些算法天生是高方差的算法。如kNN,决策树等
  • 非参数学习通常都是高方差算法。因为不对数据进行任何假设
  • 有一些算法天生是高偏差算法。如线性回归
  • 参数学习通常都是高偏差算法。因为堆数据具有极强的假设

大多数算法具有相应的参数,可以调整偏差和方差, 比如kNN中的k和线性回归中使用多项式回归。

偏差和方差通常是矛盾的,我们要在两者之间找到一个平衡

在机器学习领域,主要的挑战来自方差,当然主要是在算法方面,实际问题中原因不尽相同

解决高方差的通常手段:

  1.降低模型复杂度

  2.减少数据维度;降噪

  3.增加样本数

  4.使用验证集

  5.模型正则化

原文地址:https://www.cnblogs.com/VitoLin21/p/11376335.html

时间: 2024-08-03 17:48:43

偏差和方差以及偏差方差权衡(Bias Variance Trade off)的相关文章

对模型方差和偏差的解释之一:过拟合

原文:http://blog.csdn.net/vivihe0/article/details/33317041 在说到模型过拟合问题的时候,我们经常听说到模型的方差和偏差,本系列就通过多项式拟合为例来说明什么是模型的方差和偏差,进而说明模型复杂度与模型预测效果之间的关系. 我们通过计算机产生样本数据点来进行多项式拟合.为了能在2维平面上方便显示拟合的函数,我们的输入向量和输出向量都是1维的.我们产生数据的函数是: y = sin(2*pi*x) 根据这个函数,我们以(0,0.1,....,0.

对模型方差和偏差的解释之二:泛化误差

原文:http://blog.csdn.net/vivihe0/article/details/33319969 我们说过,如何在实际应用中建模,我们不可能知道产生数据的真实函数是什么,那么如何评价模型的好坏呢?由于我们拟合曲线的目标是对新的x值做出好的预测.为了检验我们建立的模型的好坏,我们需要一个测试集,这个集合与我们训练模型的训练集相互独立.也就是说,测试集中的样本数据必须是在训练模型的时候,模型没有见过的样本数据.已经训练好的模型在遇见新的样本时的表现被称作泛化性能. 现在我们还是利用函

斯坦福大学公开课机器学习: advice for applying machine learning | regularization and bais/variance(机器学习中方差和偏差如何相互影响、以及和算法的正则化之间的相互关系)

算法正则化可以有效地防止过拟合, 但正则化跟算法的偏差和方差又有什么关系呢?下面主要讨论一下方差和偏差两者之间是如何相互影响的.以及和算法的正则化之间的相互关系 假如我们要对高阶的多项式进行拟合,为了防止过拟合现象,我们要使用图下所示的正则化.因此我们试图通过下面的正则化项,来让参数的值尽可能小.正则化项的求和范围,照例取为j等于1到m,而非j等于0到m. 然后我们来分析以下三种情形.第一种情形:正则化参数lambda取一个比较大的值(比如lambda的值取为10000甚至更大).在这种情况下,

2.9 Model Selection and the Bias–Variance Tradeoff

结论 模型复杂度↑Bias↓Variance↓ 例子 $y_i=f(x_i)+\epsilon_i,E(\epsilon_i)=0,Var(\epsilon_i)=\sigma^2$ 使用knn做预测,在点$x_0$处的Excepted prediction error: $EPE(x_0)=E\left[\left(y_0-\hat{f}(x_0)\right)^2|x_0\right]\\ \ \ =E\left[\left(y_0-E(y_0)\right)^2|x_0\right]+\l

ML中的方差与偏差

下面这一段节选自知乎用户,具体链接为:https://www.zhihu.com/question/27068705/answer/82132134. 在机器学习过程中,我们用训练数据集去训练(学习)一个model(模型),通常的做法是定义一个Loss function(误差函数),通过将这个Loss(或者叫error)的最小化过程,来提高模型的性能(performance).然而我们学习一个模型的目的是为了解决实际的问题(或者说是训练数据集这个领域(field)中的一般化问题),单纯地将训练数

Bias vs. Variance(3)---用learning curves来判断bias/variance problem

画learning curves可以用来检查我们的学习算法运行是否正常或者用来改进我们的算法,我们经常使用learning cruves来判断我们的算法是否存在bias problem/variance problem或者两者皆有. learning curves 上图是Jtrain(θ)与Jcv(θ)与training set size m的关系图,假设我们使用二次项来拟合我们的trainning data. 当trainning data只有一个时,我们能很好的拟合,即Jtrain(θ)=0

Bias vs. Variance(2)--regularization and bias/variance,如何选择合适的regularization parameter λ(model selection)

Linear regression with regularization 当我们的λ很大时,hθ(x)≍θ0,是一条直线,会出现underfit:当我们的λ很小时(=0时),即相当于没有做regularization,会出现overfit;只有当我们的λ取intermediate值时,才会刚刚好.那么我们怎么自动来选择这个λ的值呢? 正则化时的Jtrain(θ),Jcv(θ),Jtest(θ)的表达式 正则化时的Jtrain(θ),Jcv(θ),Jtest(θ)的表达式不带有regulariz

On the Bias/Variance tradeoff in Machine Learning

参考:https://codesachin.wordpress.com/2015/08/05/on-the-biasvariance-tradeoff-in-machine-learning/ 之前一直没搞明白什么是bias,什么是variance,现在看看这篇博文. 当你的模型太简单,也就是你的train error太大的时候,你的bias就会比较大:当你的模型变得复杂时,bias变小,同时模型变得比较senstive,variance就会变大 但bias变化的幅度更大,所有整体看来,cros

机器学习(八) 多项式回归与模型泛化(下)

六.验证数据集与交叉验证 七.偏差方差平衡 偏差方差权衡 Bias Variance Trade off 偏差 Bias 导致偏差的主要原因: 对问题本身的假设不正确! 如:非线性数据使用线性回归 欠拟合 underfitting 方差 Variance 数据的一点点扰动都会较大的影响模型 通常原因,使用的模型太复杂 如高阶多项式回归. 过拟合 overfitting 偏差和方差 有一些算法天生高方差,KNN 非参数学习通常都是高方差算法.因为不对数据进行任何假设. 有一些算法天生是高偏差算法.