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,则有
,其中:
#---------------------------------------------------------------------------------#
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 林軒田;
转载于:https://www.cnblogs.com/dfcao/p/ng_ml_2.html
coursera机器学习笔记-多元线性回归,normal equation相关推荐
- 【吴恩达机器学习】第二周课程精简笔记——多元线性回归和计算参数分析
1. Multivariate Linear Regerssion(多元线性回归) (1)Multiple Feature We now introduce notation for equation ...
- 机器学习之多元线性回归
1.多元线性回归模型:定义:具有多个特征的线性回归模型 多元线性回归模型,见下图: 多元线性回归总结(参数.模型.损失函数.梯度下降算法)见下图:[注意:梯度下降算法每次都是同时更新wj和b] 2.多 ...
- Stanford机器学习笔记-1.线性回归
转载自:http://www.cnblogs.com/llhthinker/tag/Machine%20Learning/ Content: 1. Linear Regression 1.1 Line ...
- 【机器学习】机器学习之多元线性回归
目录 一.多元线性回归基础理论 二.案例分析 三.数据预处理 1.错误数据清洗 2.非数值型数据转换 四.使用Excel实现回归 1.回归实现 2.回归分析 五.使用代码实现回归 1. 数据预处理 2 ...
- 机器学习10—多元线性回归模型
多元线性回归模型statsmodelsols 前言 什么是多元线性回归分析预测法 一.多元线性回归 二.多元线性回归模型求解 2.1最小二乘法实现参数估计-估计自变量X的系数 2.2决定系数:R² 与 ...
- 机器学习基础-多元线性回归-02
矩阵运算 多元线性回归 梯度下降法-多元线性回归 import numpy as np from numpy import genfromtxt import matplotlib.pyplot as ...
- 机器学习(多元线性回归模型逻辑回归)
多元线性回归 定义:回归分析中,含有两个或者两个以上自变量,称为多元回归,若自变量系数为1,则此回归为多元线性回归. (特殊的:自变量个数为1个,为一元线性回归)多元线性回归模型如下所示: 如上图所示 ...
- [学习笔记]多元线性回归的matlab实现
1. Matlab函数 函数:regress [b,bint,r,rint,stats]=regress(y,x); 参数:x.y X:矩阵x表示预测变量,要注意的是如果有常数项,要在矩阵x中包含一个 ...
- 大数据(041)机器学习【多元线性回归实例】
一.前言 保险公司对个人投保时或根据历史数据生成的模型来计算个人保费,那么本次我们就以这个模型的求解过程为例来实践下多元线性回归. 二.数据&简单分析 我们已经获取到了一些数据(模拟数据),文 ...
最新文章
- 洛谷 1281 书的复制
- 一文读懂全系列树莓派!
- python编写木马攻击_用Python写一个自动木马程序
- 《小美斗地主》:棋牌手游新商业模式启示录
- c++ STL平常练习-1
- 耦合式是什么意思_高内聚 ,低耦合 到底是什么意思?
- java 反射 成员变量_java基础--反射(成员变量)
- 资源放送丨《数据模型重构案例分享》PPT视频
- error C2146: 语法错误 : 缺少“;”(在标识符“PVOID64”的前面)[转]
- backtrack常用的一些综合扫描工具实例用法
- oracle 获取异常 信息,oracle存储过程异常信息的显示
- 酒店结婚播放PPT模板
- linux服务器离线安装python第三方库
- 软考笔记——2.1进程管理、同步互斥、死锁、线程
- 2022年医院三基考试肿瘤相关训练题及答案
- 【现代通信原理笔记】8 蜂窝系统
- matlab nan变成0_最优化计算与matlab实现(17)——粒子群优化算法——带压缩因子的粒子群算法...
- 开启定位权限还是定位失败
- BZOJ 2314 士兵的放置(play) 树形DP
- 计算机系统保护怎么打开,如何开启系统还原 开启系统还原方法有哪些
热门文章
- java 包装类型_2.Java基本类型与包装类型
- php数组重置,php 重置数组索引,兼容多维数组
- 基于GPT2的中文闲聊机器人/GPT2 for Chinese chitchat
- 如何做好一位合格qc_如何做好一个合格的热缩产品
- pytorch按照索引取batch中的数
- 资源描述框架RDF-阮一峰
- Js与flash交互:在html页面中用js与MyReport插件交互
- Docker-Docker-file构建Redis5.0.3镜像
- Spring读取xml配置文件的原理与实现
- Maxent猛犸反欺诈入选Gartner 2018 Cool Vendors