正则化——“偏差(bias)”与“方差(variance)”

正则化后的线性回归模型

模型

\[{h_\theta }\left( x \right) = {\theta _0} + {\theta _1}x + {\theta _2}{x^2} + {\theta _3}{x^3} + {\theta _4}{x^4}\]

\[J\left( \theta  \right) = \frac{1}{{2m}}\left[ {\sum\limits_{i = 1}^m {{{\left( {{h_\theta }\left( {{x^{\left( i \right)}}} \right) - {y^{\left( i \right)}}} \right)}^2}}  + \lambda \sum\limits_{j = 1}^n {\theta _j^2} } \right]\]

当正则化参数λ很大时

\[{h_\theta }\left( x \right) \approx {\theta _0}\]

这时处于“高偏差(High bias)”(underfit)的情况

当正则化参数很小(λ=0)时

\[{h_\theta }\left( x \right) = {\theta _0} + {\theta _1}x + {\theta _2}{x^2} + {\theta _3}{x^3} + {\theta _4}{x^4}\]

这时处于“高方差(High variance)”(overfit)

当正则化参数λ适当时

模型处于“Just right”状态



如何选择正确的λ呢?

除了以下两个公式

\[{h_\theta }\left( x \right) = {\theta _0} + {\theta _1}x + {\theta _2}{x^2} + {\theta _3}{x^3} + {\theta _4}{x^4}\]

\[J\left( \theta  \right) = \frac{1}{{2m}}\left[ {\sum\limits_{i = 1}^m {{{\left( {{h_\theta }\left( {{x^{\left( i \right)}}} \right) - {y^{\left( i \right)}}} \right)}^2}}  + \lambda \sum\limits_{j = 1}^n {\theta _j^2} } \right]\]

再定义

\[\begin{array}{l}
{J_{train}}\left( \theta \right) = \frac{1}{{2{m_{train}}}}\sum\limits_{i = 1}^{{m_{train}}} {{{\left( {{h_\theta }\left( {{x^{\left( i \right)}}} \right) - {y^{\left( i \right)}}} \right)}^2}} \\
{J_{CV}}\left( \theta \right) = \frac{1}{{2{m_{CV}}}}\sum\limits_{i = 1}^{{m_{CV}}} {{{\left( {{h_\theta }\left( {x_{CV}^{\left( i \right)}} \right) - y_{CV}^{\left( i \right)}} \right)}^2}} \\
{J_{test}}\left( \theta \right) = \frac{1}{{2{m_{test}}}}\sum\limits_{i = 1}^{{m_{test}}} {{{\left( {{h_\theta }\left( {{x^{\left( i \right)}}} \right) - {y^{\left( i \right)}}} \right)}^2}}
\end{array}\]

分别表示“训练误差”、‘“交叉验证误差”和“测试误差”

选择λ

尝试如下λ

  • λ=0----------->minJ(θ)----->Θ(1)------>JCV(1))
  • λ=0.01------->minJ(θ)----->Θ(2)------>JCV(2))
  • λ=0.02------->minJ(θ)----->Θ(3)------>JCV(3))
  • λ=0.04------->minJ(θ)----->Θ(4)------>JCV(4))
  • .
  • .
  • .
  • λ=10--------->minJ(θ)----->Θ(12)------>JCV(12))

运用不同的λ去最小化“代价函数”得到不同的Θ;

不同的Θ带入h(x)中得到不同的模型,然后用“交叉验证集”验证;

取“交叉验证误差”最小的那个模型;

将最终得到的模型运用于测试集,测试模型的表现。

原文地址:https://www.cnblogs.com/qkloveslife/p/9885500.html

时间: 2024-11-06 15:31:43

正则化——“偏差(bias)”与“方差(variance)”的相关文章

斯坦福大学公开课机器学习:advice for applying machine learning | learning curves (改进学习算法:高偏差和高方差与学习曲线的关系)

绘制学习曲线非常有用,比如你想检查你的学习算法,运行是否正常.或者你希望改进算法的表现或效果.那么学习曲线就是一种很好的工具.学习曲线可以判断某一个学习算法,是偏差.方差问题,或是二者皆有. 为了绘制一条学习曲线,通常先绘制出训练集数据的平均误差平方和(Jtrain),或者交叉验证集数据的平均误差平方和(Jcv).将其绘制成一个关于参数m的函数.也就是一个关于训练集.样本总数的函数.m一般是一个常数,比如m等于100,表示100组训练样本.但我们要自己取一些m的值,也就是说对m的取值做一点限制,

C++ - Vector 计算 均值(mean) 和 方差(variance)

Vector 计算 均值(mean) 和 方差(variance) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24623187 vector<>类型的数组, 计算均值和方差的最简方法. 代码: double sum = std::accumulate(std::begin(resultSet), std::end(resultSet), 0.0); double mean = sum / resultSet.size()

CheeseZH: Stanford University: Machine Learning Ex5:Regularized Linear Regression and Bias v.s. Variance

源码:https://github.com/cheesezhe/Coursera-Machine-Learning-Exercise/tree/master/ex5 Introduction: In this exercise, you will implement regularized linear regression and use it to study models with different bias-variance properties. 1. Regularized Lin

Bias vs. Variance(4)---根据是high bias还是high variance问题来判断接下来做些什么

怎么区分哪些措施对我们有用呢?----首先根据learning curve来判断你的问题是high bias or variance 当你的算法是high bias问题时,如果你get more training examples是没有用处的,这时我们就不要浪费时间在get5 more training examples上面了. 对如何选择neural network architecture(选择几层hidden layer以及神经网络的大小)的建议 我们可以选择相对于来说"small&quo

方差variance, 协方差covariance, 协方差矩阵covariance matrix

参考: 如何通俗易懂地解释「协方差」与「相关系数」的概念?(非常通俗易懂) 浅谈协方差矩阵 方差(variance) 集合中各个数据与平均数之差的平方的平均数.在概率论与数理统计中,方差(Variance)用来度量随机变量和其数学期望(即均值)之间的偏离程度.  方差越大,数据的离散程度就越大. 协方差(covariance) 协方差表示的是两个变量总体误差的方差,这与只表示一个变量误差的方差不同.如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么

机器学习中的数学(2)-线性回归,偏差、方差权衡

机器学习中的数学(2)-线性回归,偏差.方差权衡 版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任.如果有问题,请联系作者 [email protected] 前言: 距离上次发文章,也快有半个月的时间了,这半个月的时间里又在学习机器学习的道路上摸索着前进,积累了一点心得,以后会慢慢的写写这些心得.写文章是促进自己对知识认识的一个好方法,看书的时候往往不是非

偏差-方差分解

1. 偏差-方差分解是解释学习算法泛化性能的一种重要工具,试图对学习算法的期望泛化误差率(generalization error)进行分解.可以分解为三部分,偏差(bias).方差(variance)和噪声(noise).其中, 偏差:度量了模型的期望值和真实结果的偏离程度,刻画了模型本身的拟合能力 方差:度量了同样大小的训练集的变动所导致的学习性能的变化,刻画了数据扰动所产生的影响. 噪声:表达了当前任务上任何学习算法所能达到的期望防滑误差的下界,刻画了学习问题本身的难度. 2. 泛化误差:

机器学习的防止过拟合方法

过拟合 ??我们都知道,在进行数据挖掘或者机器学习模型建立的时候,因为在统计学习中,假设数据满足独立同分布(i.i.d,independently and identically distributed),即当前已产生的数据可以对未来的数据进行推测与模拟,因此都是使用历史数据建立模型,即使用已经产生的数据去训练,然后使用该模型去拟合未来的数据.但是一般独立同分布的假设往往不成立,即数据的分布可能会发生变化(distribution drift),并且可能当前的数据量过少,不足以对整个数据集进行分

机器学习中防止过拟合的处理方法

原文地址:一只鸟的天空,http://blog.csdn.net/heyongluoyao8/article/details/49429629 防止过拟合的处理方法 过拟合 ??我们都知道,在进行数据挖掘或者机器学习模型建立的时候,因为在统计学习中,假设数据满足独立同分布(i.i.d,independently and identically distributed),即当前已产生的数据可以对未来的数据进行推测与模拟,因此都是使用历史数据建立模型,即使用已经产生的数据去训练,然后使用该模型去拟合