Overfitting&Underfitting Problems
这次根据结合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的更多相关文章
- overfitting &&underfitting
1.过拟合 然能完美的拟合模型,但是拟合出来的模型会含有大量的参数,将会是一个含有大量参数的非常庞大的模型,因此不利于实现 1.1解决过拟合的方法 1.1.1 特征选择,通过选取特征变量来减少模型参数 ...
- Machine Learning for Developers
Machine Learning for Developers Most developers these days have heard of machine learning, but when ...
- Course Machine Learning Note
Machine Learning Note Introduction Introduction What is Machine Learning? Two definitions of Machine ...
- [C2P2] Andrew Ng - Machine Learning
##Linear Regression with One Variable Linear regression predicts a real-valued output based on an in ...
- 一起啃PRML - 1.1 Example: Polynomial Curve Fitting 多项式曲线拟合
一起啃PRML - 1.1 Example: Polynomial Curve Fitting @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ 前言: ...
- Reading | 《机器学习》(周志华)(未完待续)
目录 I. 大师对人工智能和机器学习的看法 II. Introduction A. What is Machine Learning 什么是机器学习 B. Basic terms 基础术语 C. In ...
- 机器学习之step by step实战及知识积累笔记
数据工作者工作时间划分 据crowdflower数据科学研究报告,数据科学工作者的时间分配主要在以下几个领域: 首先是数据收集要占20%左右的时间和精力,接着就是数据清洗和再组织需要占用60%的时间. ...
- stochastic noise and deterministic noise
在机器学习中,导致overfitting的原因之一是noise,这个noise可以分为两种,即stochastic noise,随机噪声来自数据产生过程,比如测量误差等,和deterministic ...
- 局部加权回归、欠拟合、过拟合(Locally Weighted Linear Regression、Underfitting、Overfitting)
欠拟合.过拟合 如下图中三个拟合模型.第一个是一个线性模型,对训练数据拟合不够好,损失函数取值较大.如图中第二个模型,如果我们在线性模型上加一个新特征项,拟合结果就会好一些.图中第三个是一个包含5阶多 ...
随机推荐
- 结束C#2的讲解:最后的一些特性
分部类型 可以在多个源文件中为一个类型编写代码.特别适合用于部分代码是自动生成,而其他部分的代码为手动类型. 多个源代码文件组成的类型为分部类型 #region 7-1演示分部类型的混合声明 part ...
- Spring框架基础知识
本人博客文章网址:https://www.peretang.com/basic-knowledge-of-spring-framework/ Spring框架简介 Spring , 一个开源的框架 , ...
- DIV+CSS 规范命名集合
一: 命名规范说明: 1).所有的命名最好都小写 2).属性的值一定要用双引号("")括起来,且一定要有值如class="divcss5",id="d ...
- C# 在iis windows authentication身份验证下,如何实现域用户自动登录
前言: 该博文产生的背景是有个项目在客户那部署方式为iis windows身份验证,而客户不想每次登录系统都要输入帐号和密码来登录. 因此需要得到域用户,然后进行判断该用户是否可以进入系统. 解决方法 ...
- 酷睿彩票合买代购网站管理系统 v2016 - 源码下载 有合买功能 有免费版 标准版 高级版
源码介绍 免费版下载地址 电信 浙江腾佑 网鼎科技 正易网络下载 联通 网鼎联通 标准版联系QQ:1395239152 彩票合买代购网站管理系统公司独立开发,完全拥有软件自主知识产权.具有电脑We ...
- 学习笔记:JavaScript-入门篇
1.对话框,输出框,警告框 1. document.write() 可用于直接向 HTML 输出流写内容.简单的说就是直接在网页中输出内容. 2.alert(字符串或变量); 3.conf ...
- [刷题]算法竞赛入门经典(第2版) 5-8/UVa230 - Borrowers
//又开学啦,不知不觉成为大二的老人了...时间过得好快啊,感觉好颓废... 题意:建立一个借书/归还系统.有借.还.把还的书插到书架上这三个指令. 代码:(Accepted, 0ms) //UVa2 ...
- OOP 三大特点:继承性,封装性,多态性
1.继承性:代码重用 2.封装性: 使相似数据和操作进行封装,保持代码安全 3.多态性: PHP不支持多态
- nginx 日志分割(简单、全面)
Nginx 日志分割 因业务需要做了简单的Nginx 日志分割, 第1章 详细配置如下. #建议在mkdir /home/shell -p 专门写shell 脚本位置 root@localhost ...
- Java中的局部变量表及使用jclasslib进行查看
直接上下载地址 jclasslib是一个独立的工具,不是包含在JDK中的工具,需要自己进行下载,下载地址如下: http://downfile.downcc.com/down/JClassLib_wi ...