coursera机器学习笔记-多元线性回归,normal equation
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得;
#注:此笔记是我自己认为本节课里比较重要、难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点;
#标记为<补充>的是我自己加的内容而非课堂内容,参考文献列于文末。博主能力有限,若有错误,恳请指正;
#---------------------------------------------------------------------------------#
多元线性回归的模型:

#---------------------------------------------------------------------------------#
梯度下降法在多元线性回归中的应用:
代价函数:
;
梯度下降:
,
代入J(theta)得到:
;
在多元线性回归中用梯度下降法要注意feature scaling!
如果不同变量之间的大小不再一个数量级,作feature scaling能大大减少寻找最优解的时间;
例如:
- x1 = size (0 - 2000 feet)
- x2 = number of bedrooms (1-5)
- x1,x2之间差别很大,如果不做feature scaling,对θ1和θ2作等高线图:
,将会花很长时间去找最优解;
NG给的建议:最大变量和最小变量均值差3倍以内为佳;
mean normalization:将xi替换为(xi - mean)/max;
#---------------------------------------------------------------------------------#
学习速率α大小的选择:
1, 对足够小的α,J(theta)会单调减少,
;
2, 如果α过小, 梯度下降会很慢;
3, 如果α过大, J(theta)可能不会单调减少,甚至可能不收敛,
;
如何选择α,如下:
..., 0.001, 0.01, 0.1, 1, ..., 或者 ..., 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1, ....
#---------------------------------------------------------------------------------#
normal equation:假设我们有m个样本。特征向量的维度为n。因此,可知样本为{(x(1),y(1)), (x(2),y(2)),... ..., (x(m),y(m))},其中对于每一个样本中的x(i),都有x(i)={x1(i), xn(i),... ...,xn(i)}。令 H(θ)=θ0 + θ1x1 +θ2x2 +... + θnxn,则有
,其中:

表示第i个training example;
表示第i个training example里的第j个feature的值;#---------------------------------------------------------------------------------#
Normal Equation VS Gradient Descent
Normal Equation 跟 Gradient Descent(梯度下降)一样,可以用来求权重向量θ。但它与Gradient Descent相比,既有优势也有劣势。
优势:
Normal Equation可以不管x特征的scale。比如,有特征向量X={x1, x2}, 其中x1的range为1~2000,而x2的range为1~4,它们的范围相差了500倍。如果使用Gradient Descent方法的话,会导致椭圆变得很窄很长,而出现梯度下降困难,甚至无法下降梯度(因为导数乘上步长后可能会冲出椭圆的外面)。但是,如果用Normal Equation方法的话,就不用担心这个问题了。因为它是纯粹的矩阵算法。
劣势:
相比于Gradient Descent,Normal Equation需要大量的矩阵运算,特别是求矩阵的逆。在矩阵很大的情况下,会大大增加计算复杂性以及对计算机内存容量的要求。Andrew Ng建议矩阵维数<10,000时用normal equation,大于时改用梯度下降法;
#---------------------------------------------------------------------------------#
什么情况下会出现XTX non-invertible?该如何应对?
(1)当特征向量的维度过多时(如,m <= n 时)
解决方法:① 使用regularization的方式
or ②删除一些特征维度
(2)有冗余特征(也称为linearly dependent feature)
例如, x1= size in feet2
x2 = size in m2
feet和m的换算为 1m≈3.28feet所以,x1 ≈ 3.282 * x2, 因此x1和x2是线性相关的(也可以说x1和x2之间有一个是冗余的)
解决方法:找出冗余的特征维度,删除之。
#---------------------------------------------------------------------------------#
normal equation 的推导:
这种方法不需要经过任何循环,也不需要假设初始值。虽然推导本身有点复杂,但是结果一步到位,简单又效率。
准备工作:
定义function f(A):Mapping from M-by-n matrices to the real numbers。定义f(A)的微分为:

定义trace operator。对于一个n by n的matrix A, the trace of A is:

Trace有如下特性:如果a是一个real number, 那么tr a = a;

矩阵微分有如下特性:

开始推导:
首先,设计一个m行n列的(实际上是n+1列,应为我们假设x0 =1 )矩阵X,他的每一行都是一个training sample,每列都是一个特征。

设计y成为一个m列的目标值(输出值)向量,也就是房子的价格在我们例子中。
因为:

所以:




所以:

因为我们要让J最小,所以J的微分必须等于0。
所以:
#---------------------------------------------------------------------------------#
参考:
coursera: standford machine learning, by Andrew Ng;
coursera: 台湾大学機器學習基石,by 林軒田;
coursera机器学习笔记-多元线性回归,normal equation的更多相关文章
- 吴恩达机器学习笔记——正规方程(Normal Equation)
问题描述:m examples : (x(1),y(1)), (x(2),y(2)),..., (x(m),y(m)) and n features; 计算方法:θ = (XTX)-1XTy; 计算过 ...
- Stanford机器学习笔记-1.线性回归
Content: 1. Linear Regression 1.1 Linear Regression with one variable 1.1.1 Gradient descent algorit ...
- [机器学习Lesson4]多元线性回归
1. 多元线性回归定义 多元线性回归也被称为多元线性回归. 我们现在介绍方程的符号,我们可以有任意数量的输入变量. 这些多个特征的假设函数的多变量形式如下: hθ(x)=θ0+θ1x1+θ2x2+θ3 ...
- 【TensorFlow篇】--Tensorflow框架初始,实现机器学习中多元线性回归
一.前述 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,T ...
- 100天搞定机器学习|Day3多元线性回归
前情回顾 [第二天100天搞定机器学习|Day2简单线性回归分析][1],我们学习了简单线性回归分析,这个模型非常简单,很容易理解.实现方式是sklearn中的LinearRegression,我们也 ...
- coursera机器学习笔记-建议,系统设计
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- coursera机器学习笔记-神经网络,学习篇
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- coursera机器学习笔记-神经网络,初识篇
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- coursera机器学习笔记-机器学习概论,梯度下降法
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
随机推荐
- Java工程图标前面的红色叹号
有时Java工程图标前面会出现一个红色的叹号,这是因为工程引入的jar包不存在(或者被删除.移动)造成的. 右键点击工程,选择Build Path->Configure Build Path,弹 ...
- 【Java每日一题】20161122
package Nov2016; import java.util.ArrayList; import java.util.Iterator; public class Ques1122 { publ ...
- Mockups Mockplus 网页原型设计
http://www.cocoachina.com/cms/wap.php?action=article&id=15319
- Java并发编程:并发容器之CopyOnWriteArrayList(转载)
Java并发编程:并发容器之CopyOnWriteArrayList(转载) 原文链接: http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW ...
- 制作Java视频播放器
一.工程准备 首先需要下载并安装VLC播放器,然后下载vlcj外部库. 下载slf4j中的slf4j-api-1.7.13.jar. slf4j- nop-1.7.13.jar 将vlc安装目录下的l ...
- x8086汇编在显存中显示字符串
题目:在屏幕中间显示绿色,绿底红色,白底蓝色的字符串‘welcome to masm!’ 80X25彩色字符模式显示缓冲区的结构: 在内存地址结构中,B8000H~BFFFFH共32KB的空间,为80 ...
- 市面上常见的javaEE WEB服务软件
常见的市面上web服务软件 Tomcat:轻量级的WEB应用程序服务器(开源),开源组织Apache的产品.免费的.支持部分的JavaEE规范.(servlet.jsp.jdbc,但ejb, rmi不 ...
- EasyDropDown – 很棒的下拉菜单,含精美主题
EasyDropDown 是一个 jQuery 插件,你可以毫不费力地将简陋的 Select 元素设置为可定制风格的下拉菜单,用于表单或者一般的导航.和著名的下拉插件 Chosen 很像,但是具有自己 ...
- CSS3盒模型温故
CSS有一种基础设计模式叫盒模型,定义了Web页面中的元素是如何看做盒子来解析的.每一个盒子有不同的展示界面,下面就来介绍盒模型,主要有一下几种盒模型:inline.inline-block.bloc ...
- 【经验之谈】前端面试知识点总结03(JavaScript相关)——附答案
目录 三.JavaScript部分 1.谈谈你对Ajax的理解?(概念.特点.作用) 2.说说你对延迟对象deferred的理解? 3.什么是跨域,如何实现跨域访问? 4.为什么要使用模板引擎? 5. ...