这次根据结合Google的翻译果然速度快上许多,暂时休息,晚上在传一个exm2的随笔。

关于过度拟合下的问题

考虑从x∈R预测y的问题,下面的最左边的图显示了将\(y=\theta_0+\theta_1x\)拟合到数集的结果,我们看到数据不是真的在直线上,所以适合度不是很好。

相反,如果我们添加了一个额外的特征\(x^2\),并且拟合\(y=\theta_0+\theta_1x+\theta_2x^2\),那么我们获得一个稍微更好的拟合数据(见中图)。 哈哈,这时候是不是我们添加的功能越多越好呢?当然不是!当增加太多特征的时候,也会出现很多问题:最右边的图是拟合五阶多项式\(y=\sum_{j=0}^{5}\theta_jx^j\)的结果。图中我们可以看到即使拟合的曲线完美地通过了数据,但我们也不会指望这是对不同生活区(x)的房价(y)很好的预测结果,即当面对新的数据输入(x)时,输出结果(y)是不令人满意的。

没有正式定义这些术语是什么意思,我们会说左边的数字显示了一个不合适的实例,即拟合图形未能清晰捕捉数据集,而右边的数字就是过拟合的例子。

欠拟合(underfitting)或称高偏差,主要由于存在较少的特征集或拟合出的功能函数过于简单导致,此时拟合出的图形对数据的实际趋势的反应能力很差。相反地,过拟合(overfitting)或高方差是由适合可用数据的假设函数引起的,但不能很好地推广到预测新数据。 它通常是由复杂的功能引起的,它产生了与数据无关的大量不必要的曲线和角度。

过拟合与欠拟合这两个术语适用于线性和逻辑回归。

解决过拟合问题有两个主要选择:

1)减少特征数量

  • 自己手动选择要保留的特征
  • 使用选择算法模型(在以后的课程中引出)

2)正则处理(Regularization)

  • 保持所有的特征,但是减小参数\(\theta_j\)的大小。
  • 当我们有很多有用的特征集时,正则化后的效果很好。

过拟合下的代价函数(cost function)

如果我们从假设函数中出现过度拟合,我们可以通过增加代价(cost)来减少我们函数中的一些参数的权重。

假设我们想使以下函数:

\(\theta_0+\theta_1x+\theta_2x^2+\theta_3x^3+\theta_4x^4\)

我们试图消除(减弱)\(\theta_3x^3\)与\(\theta_4x^4\)的影响力。实际上并不用删除这些特征或改变我们假设的形式,我们可以这样改变我们的成本函数:

我们在末尾添加了两个额外项,以增加\(\theta_3\)和\(\theta_4\)的成本。 现在,为了使成本函数接近零,我们必须将\(\theta_3\)和\(\theta_4\)的值减小到接近零。 这将大大降低我们假设函数中\(\theta_3x^3\)和\(\theta_4x^4\)的值。 因此,我们看到新假设(由粉红色曲线描绘)看起来像一个二次函数,但是由于额外的小项\(\theta_3x^3\)和\(\theta_4x^4\),更适合数据。

我们可以正则(regularize)所有的参数theta,总结如下:

正则下的线性回归

梯度下降

我们不想消除(减弱)\(\theta_0\)的权重,因此需要先将\(\theta_0\)从所有的参数theta中剔除,同步不断递归:

因式变换后有:

正则方程(Normal Equation)下的regularization

为了增加正则化,方程与我们的原始方法相同,只是我们在括号内添加另一个项:

L是一个矩阵,其左上角为0,对角线为1,其他地方为0。 应该有维数(n + 1)×(n + 1)。 直观地,这是单位矩阵(尽管我们不包括\(x_0\)),乘以单个实数λ。

之前我们提到\(X^TX\)可能存在的不可逆情形,这里经过\(X^TX+\lambda L\)运算之后一定是可逆的!!

正则下的逻辑回归

我们将线性回归正规化,同时也可以类似的方式对逻辑回归进行正则化。 因此,我们可以避免过度拟合。 下图显示了由蓝线显示的正则化函数比由蓝线表示的非正则化函数更容易具有代表性:

代价函数(cost function)

之前的计算公式为:

正则后的结果为(同样需要事先剔除第一个参数theta_0):

同时须保证梯度下降中德参数theta的同步更新:

Overfitting&Underfitting Problems的更多相关文章

  1. overfitting &&underfitting

    1.过拟合 然能完美的拟合模型,但是拟合出来的模型会含有大量的参数,将会是一个含有大量参数的非常庞大的模型,因此不利于实现 1.1解决过拟合的方法 1.1.1 特征选择,通过选取特征变量来减少模型参数 ...

  2. Machine Learning for Developers

    Machine Learning for Developers Most developers these days have heard of machine learning, but when ...

  3. Course Machine Learning Note

    Machine Learning Note Introduction Introduction What is Machine Learning? Two definitions of Machine ...

  4. [C2P2] Andrew Ng - Machine Learning

    ##Linear Regression with One Variable Linear regression predicts a real-valued output based on an in ...

  5. 一起啃PRML - 1.1 Example: Polynomial Curve Fitting 多项式曲线拟合

    一起啃PRML - 1.1 Example: Polynomial Curve Fitting @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ 前言: ...

  6. Reading | 《机器学习》(周志华)(未完待续)

    目录 I. 大师对人工智能和机器学习的看法 II. Introduction A. What is Machine Learning 什么是机器学习 B. Basic terms 基础术语 C. In ...

  7. 机器学习之step by step实战及知识积累笔记

    数据工作者工作时间划分 据crowdflower数据科学研究报告,数据科学工作者的时间分配主要在以下几个领域: 首先是数据收集要占20%左右的时间和精力,接着就是数据清洗和再组织需要占用60%的时间. ...

  8. stochastic noise and deterministic noise

    在机器学习中,导致overfitting的原因之一是noise,这个noise可以分为两种,即stochastic noise,随机噪声来自数据产生过程,比如测量误差等,和deterministic ...

  9. 局部加权回归、欠拟合、过拟合(Locally Weighted Linear Regression、Underfitting、Overfitting)

    欠拟合.过拟合 如下图中三个拟合模型.第一个是一个线性模型,对训练数据拟合不够好,损失函数取值较大.如图中第二个模型,如果我们在线性模型上加一个新特征项,拟合结果就会好一些.图中第三个是一个包含5阶多 ...

随机推荐

  1. python 基础之pickle 与json 报错问题解决方案

    Python 基础之pickle与json 有没有在搞pickle与json在进行数据储存的时候老是报错,这个有些让人烦恼,在之前有一篇介绍过它们的基本用法以及在使用过长中避免一些坑,但是今天在把对象 ...

  2. Echarts环形进度使用 【1 简单的使用示例】

    使用中说明几点属性:  hoverAnimation:false,//此处查了好久属性//控制鼠标放置在环上时候的交互//这里一个简单的示例使用Echarts 环形图使用方式//常用于统计完成进度等等 ...

  3. Docker - 手动迁移镜像

    在没有Docker Registry时,可以通过docker save和docker load命令完成镜像迁移的过程,先将镜像保存为压缩包,然后在其他位置再加载压缩包. 将镜像保存为压缩包文件 [ro ...

  4. Mysql求百分比

    根据相应条件抽出相应count数(myCount) 抽出总count数(totalCount) 计算百分比:myCount / totalCount * 100 四舍五入:使用ROUND函数ROUND ...

  5. 关于JS面向对象中原型和原型链以及他们之间的关系及this的详解

    一:原型和原型对象: 1.函数的原型prototype:函数才有prototype,prototype是一个对象,指向了当前构造函数的引用地址. 2.函数的原型对象__proto__:所有对象都有__ ...

  6. 开启MongoDB客户端访问控制

    参考官方文档:https://docs.mongodb.org/v2.6/tutorial/enable-authentication/ 基于版本:MongoDB 2.6 概览 在MongoDB数据实 ...

  7. JAVA中线程的状态

    java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明: NEW:至今尚未启动的线程的状态. RUNNABLE:可运行线程的线程状态. ...

  8. VR全景智慧城市-梦幻城市降临

    有人说,创业分为两种,一种是富创业,一种是穷创业! 什么是富创业呢?就是拿钱砸,我觉得这种说法有点荒唐,为什么创业,因为没钱才会去创业,有钱的那不叫创业的,那是拿钱投资点项目. 看看老一辈的富豪,不都 ...

  9. 腾讯云万象优图每个账户提供50G的图片存储(支持黄图检测)

    文章由GIT博客迁移过来 程序下载地址(源码也在):点我下载 设计说明 10月20号晚上,准备写这么一个程序. 腾讯云万象优图每个账户提供50G的图片存储(支持黄图检测) 可以在截图之后,直接点击上传 ...

  10. LR11关联问题

    LR11关联问题       最近,我在录制一份脚本在回放的时候报错,错误图如下: 很自然地我想到了关联,于是我再录制了一份脚本.我对比了一下ActionID=45322984确实是两个脚本不一样的地 ...