理解 Bias-Variance 之间的权衡

用一个模型来做预测,预测误差的来源主要有两部分,分别为 bias  与 variance ,模型的性能取决于 bias 与 variance 的 tradeoff ,理解 bias 与 variance 有助于我们诊断模型的错误,且避免 over-fitting 或者 under-fitting.

数学解释

对于观测数据 X 来预测其类别 Y ,假设两者服从 Y = f(X) + \varepsilon ,\varepsilon 在这里是一个误差项,其服从的N(0,\delta_{\varepsilon }^2).

接下来建立一个近似 f(X) 的模型 \hat{f}(X) 来拟合数据 X ,给定一个点 x , y = f(x) +\varepsilon ,若采用均方损失,模型 \hat{f}(X) 在点 x 的整体预测误差为:

\[Err(x) = E[(y - \hat{f}(x))^2]\]

这个式子其实等价于:

\[Err(x) = E[(y - \hat{f}(x))^2]\]

具体的计算过程如下

\begin{aligned}
Err(x) &= E[(y - \hat{f}^2(x))] \\
&= E[y^2 - 2y \hat{f}(x) + \hat{f}^2(x)] \\
&= E[(f(x)+ \varepsilon )^2 - 2(f(x)+ \varepsilon )\hat{f}(x) + \hat{f}^2(x)] \\
&= E[f^2(x)+2f(x) \varepsilon +\varepsilon ^2 - 2f(x)\hat{f}(x) -2\hat{f}(x)\varepsilon  + \hat{f}^2(x)] \\
&= E[f^2(x)- 2f(x)\hat{f}(x)  + \hat{f}^2(x)] +  E[2(f(x)-2\hat{f}(x)) \varepsilon +\varepsilon ^2] \\
&= f^2(x)- 2f(x)E\hat{f}(x)  + E[\hat{f}^2(x)] +  \delta _e^2 \\
&= \left \{ [E\hat{f}(x)]^2 - 2f(x)E\hat{f}(x) + f^2(x) \right \} +\left \{ E[\hat{f}^2(x)] -2[E\hat{f}(x)]^2 + [E\hat{f}(x)]^2 \right \} +  \delta _e^2 \\
&= [E\hat{f}(x) - f(x)]^2 + E[\hat{f}(x)-E\hat{f}(x)]^2 + \delta _e^2
\end{aligned}

时间: 2024-10-12 20:36:28

理解 Bias-Variance 之间的权衡的相关文章

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

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

当我们在机器学习领域进行模型训练时,出现的误差是如何分类的? 我们首先来看一下,什么叫偏差(Bias),什么叫方差(Variance): 这是一张常见的靶心图 可以看左下角的这一张图,如果我们的目标是打靶子的话,我们所有的点全都完全的偏离了这个中心的位置,那么这种情况就叫做偏差 再看右上角这张图片,我么们的目标是右上角这张图片中心的红色位置,我们射击的点都围绕在这个红色的点的周围,没有大的偏差,但是各个点间过于分散不集中,就是有非常高的方差 我们进行机器学习的过程中,大家可以想象,我们实际要训练

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

java 深入理解内部类以及之间的调用关系

什么是内部类 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限).内部类主要有以下几类:成员内部类.局部内部类.静态内部类.匿名内部类 内部类的共性 (1).内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 . (2).内部类不能用普通的方式访问. (3).内部类声明成静态的,就不能随

HTTP TCP/IP SOCKET的理解和它们之间的关系

参考网址:http://blog.csdn.net/lemonxuexue/article/details/4485877 http://blog.csdn.net/heyetina/article/details/8056575

BOM的理解--各种窗口之间的关系

---------------------------------------下面是第一个HTML <!DOCTYPE html><html><head>    <meta charset="UTF-8">    <title></title></head><body><ul></ul><textarea></textarea><inpu

scikit_learn 中文说明入门

#针对科学数据处理的统计学习教程 翻译:Tacey Wong 统计学习:随着科学实验数据的迅速增长,机器学习成了一种越来越重要的技术.问题从构建一个预测函数将不同的观察数据联系起来,到将观测数据分类,或者从未标记数据中学习到一些结构.本教程将探索机器学习中统计推理的统计学习的使用:将手中的数据做出结论Scikit-learn 是一个紧密结合Python科学计算库(Numpy.Scipy.matplotlib),集成经典机器学习算法的Python模块. 一.统计学习:scikit-learn中的设