3. Linear Regression with Multiple Variables
前面还有一章主要讲解,基本的Linear Algebra线性代数的知识,都比较简单,这里就直接跳过了。
Speaker: Andrew Ng
1. Multiple featues
训练集的特征变成了多个,就是有多个的输入变量,对应一个
的输出变量,但仍然是线性的关系。

其中columns为 n 类特征,rows为 m 个samples,代表 i 个sample数据,
代表第 i 个sample数据的第 j 个特征的值。
接下来我们定义在多变量下的:
其中针对通常的情况认为为1,这里通过向量表示为:
那么
2. Gradient descent for multiple variable
下面来看一下多变量下梯度下降算法的定义:
Hypothesis :
Parameters : 共n+1个参数
Cost Function :
Gadient Descent :
Repeat {
simultaneously update for every
}
原来单变量的梯度下降算法与现在对变量的梯度下降算法比较,最关键的就是一定要同时进行更新。

3. Gradient descent in practice I : Feature Scaling
这部分主要讲解Feature Scaling特征尺度对于梯度下降算法的影响。

如果对于sample中的不同特征所处的范围差异很大,就像左图所示,那么使用梯度下降算法需要很长的时间才能找到局部最优解。
如果对于sample中的特征尺度进行数据标准化处理,例如把特征值处理到-1到1的范围内,那么梯度下降算法找寻局部最优解的时间就会大大减少。
在PPT中数据标准化的处理方法如下,,其中
是range (max-min) , 或者是
的标准差Standard Deviation.

其他的数据标准化处理搜索可以找到很多,这里
4. Gadient descent in pratice II : Learing rate
梯度下降:
怎样保证梯度下降算法是正确在运行的,如何去选择一个合适的Learning Rate。

梯度下降算法收敛所需要的迭代次数是根据不同的模型而不同,通过绘制代价函数和迭代次数的关系图,或是把代价函数的变化值同阈值作比较,例如0.001,来判断收敛。

梯度下降算法还受到Learnin rate的影响,如果过小,收敛速度会非常慢,需要迭代很多次,如果
过大,迭代可能使代价函数不收敛跳过局部最优值。
通常可以尝试以下的Learning rate: ..., 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1, ...
5. Features and polynomial regression
这里讲解多项式回归。对于线性回归可能并不能应用到所有数据,有些模型可能需要曲线来进行回归。比如Quadratic二次或Cubic三次模型。
例如: 以及下图所示

我们可以令,这样又变成了线性回归模型。当采用梯度下降时候,要记得进行特征尺度变换。
6. Normal equation
Normal equation是从线性代数的角度来求解方程,找到代价函数最小的参数,即求解
即希望,那么我们的训练矩阵为
,训练集结果为
,那么可以进行如下推导:
(两边同乘以
化为方阵)
(两边同乘以
)
即。
这里需要注意的是,可能是奇异矩阵、不可逆矩阵,一般使用Matlab或Octave时候使用pinv伪逆来进行计算。
如果遇到不可逆,我们可以考虑精简特征表示,或者特征太多(m <= n) ,而sample比较少,那么考虑删除特征,或者采用Regularization方式。
下面是对梯度下降算法和Normal equation的方法进行对比:

| Gradient Descent | Normal Equation |
| 需要选择合适的Learning rate | 不需要设置参数 |
| 需要多次迭代Iteration | 一次运算得到结果 |
|
可以适用于特征数量n很大的情况 |
如果特征数量n很大,运算时间代价就会很大, 因为矩阵逆的计算时间复杂度为O(n^3) 通常来说对于n小于10000可以考虑使用Normal Equation |
|
适用于各种类型的模型 |
适用于线性模型,不适合逻辑回归模型或一些其他模型 |
参考:
http://files.cnblogs.com/gyj0715/courseramlnotes.pdf
http://www.cnblogs.com/elaron/archive/2013/05/20/3088894.html
3. Linear Regression with Multiple Variables的更多相关文章
- Linear regression with multiple variables(多特征的线型回归)算法实例_梯度下降解法(Gradient DesentMulti)以及正规方程解法(Normal Equation)
,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, , ...
- Machine Learning – 第2周(Linear Regression with Multiple Variables、Octave/Matlab Tutorial)
Machine Learning – Coursera Octave for Microsoft Windows GNU Octave官网 GNU Octave帮助文档 (有900页的pdf版本) O ...
- 机器学习(三)--------多变量线性回归(Linear Regression with Multiple Variables)
机器学习(三)--------多变量线性回归(Linear Regression with Multiple Variables) 同样是预测房价问题 如果有多个特征值 那么这种情况下 假设h表示 ...
- 【原】Coursera—Andrew Ng机器学习—Week 2 习题—Linear Regression with Multiple Variables 多变量线性回归
Gradient Descent for Multiple Variables [1]多变量线性模型 代价函数 Answer:AB [2]Feature Scaling 特征缩放 Answer:D ...
- 机器学习 (二) 多变量线性回归 Linear Regression with Multiple Variables
文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang 的个人 ...
- 机器学习之多变量线性回归(Linear Regression with multiple variables)
1. Multiple features(多维特征) 在机器学习之单变量线性回归(Linear Regression with One Variable)我们提到过的线性回归中,我们只有一个单一特征量 ...
- ML:多变量代价函数和梯度下降(Linear Regression with Multiple Variables)
代价函数cost function 公式: 其中,变量θ(Rn+1或者R(n+1)*1) 向量化: Octave实现: function J = computeCost(X, y, theta) %C ...
- 机器学习笔记-1 Linear Regression with Multiple Variables(week 2)
1. Multiple Features note:X0 is equal to 1 2. Feature Scaling Idea: make sure features are on a simi ...
- 斯坦福机器学习视频笔记 Week2 多元线性回归 Linear Regression with Multiple Variables
相比于week1中讨论的单变量的线性回归,多元线性回归更具有一般性,应用范围也更大,更贴近实际. Multiple Features 上面就是接上次的例子,将房价预测问题进行扩充,添加多个特征(fea ...
- #Week3 Linear Regression with Multiple Variables
一.Multiple Features 这节课主要引入了一些记号,假设现在有n个特征,那么: 为了便于用矩阵处理,令\(x_0=1\): 参数\(\theta\)是一个(n+1)*1维的向量,任一个训 ...
随机推荐
- redhat_快捷键和shell命令操作.md
tab键 命令自动补全 history !n 执行历史记录第n条 !! 执行上一条命令 !l 最后一条以l开头的命令 alias 创建命令的别名 alias 命令别名 = "命令行" ...
- Ubuntu上好用的截图工具——flameshot
前言 堪称完美的截图工具--flameshot,windows上人们习惯性的使用QQ自带的截图工具Ctrl+Alt+A或者WeChat自带的截图工具Alt+A,若您是一位使用聊天工具截图多年的&q ...
- Java的nanoTime()方法
java有两个获取和时间相关的秒数方法,一个是广泛使用的 System.currentTimeMillis() 返回的是从一个长整型结果,表示毫秒. 另一个是 System.nanoTime() 返回 ...
- 【JavaWeb】i18n 国际化
i18n 国际化 什么是 i18n 国际化(Internationalization)指的是同一个网站可以支持多种不同的语言,以方便不同国家,不同语种的用户访问. 希望相同的一个网站,不同人访问的时候 ...
- leetcode-242有效字母异位词
题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram&quo ...
- java中如何踢人下线?封禁某个账号后使其会话立即掉线!
需求场景 封禁账号是一个比较常见的业务需求,尤其是在论坛.社区类型的项目中,当出现了违规用户时我们需要将其账号立即封禁. 常规的设计思路是:在设计用户表时增加一个状态字段,例如:status,其值为1 ...
- 分布式系统:xxl-job改造spring-cloud
目录 改造原因 主要改造思路 调度中心 调度中心 执行器侧 总结 修改后的源码仓库地址:GitHub. : 改造原因 原有的xxl-job使用自己实现的http协议进行注册以及调度等,与目前框架中本身 ...
- ECC 6 debuging中create points
2013-12-07 今天无意中,发现,在ECC6中debug的时候,创建动态断点,对于command中的delete from语句居然无效,唉 虽然设置了DELETE 和DELETE FROM两个动 ...
- ES6在工作中会用到的核心知识点讲解
一.var, let, const 谈到ES6,估计大家首先肯定会想到var,let,const 咱就先谈谈这三者的区别 var a = 3; { var a = 4; } console.log(a ...
- 如何创建一个验证请求的API框架
开发一款成功软件的关键是良好的架构设计.优秀的设计不仅允许开发人员轻松地编写新功能,而且还能丝滑的适应各种变化. 好的设计应该关注应用程序的核心,即领域. 不幸的是,这很容易将领域与不属于这一层的职 ...