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维的向量,任一个训 ...
随机推荐
- 【C++】《C++ Primer 》第十五章
第十五章 面向对象程序设计 一.OOP:概述 面向对象程序设计(OOP)的核心思想是数据抽象.继承和动态绑定. 通过使用数据抽象,可以将类的接口和实现分离. 使用继承,可以定义相似的类型并对其相似关系 ...
- SpringBoot整合Shiro完成验证码校验
SpringBoot整合Shiro完成验证码校验 上一篇:SpringBoot整合Shiro使用Redis作为缓存 首先编写生成验证码的工具类 package club.qy.datao.utils; ...
- PAT甲级练习 1087 All Roads Lead to Rome (30分) 字符串hash + dijkstra
题目分析: 这题我在写的时候在PTA提交能过但是在牛客网就WA了一个点,先写一下思路留个坑 这题的简单来说就是需要找一条最短路->最开心->点最少(平均幸福指数自然就高了),由于本题给出的 ...
- 【Linux】saltstack的使用详解 超详细
一.salt常用命令 salt 该命令执行salt的执行模块,通常在master端运行,也是我们最常用到的命令 salt [options] '<target>' <function ...
- 【葵花宝典】All-in-One模式安装KubeSphere
1.准备 Linux 机器 2.google api受限下载 KubeKey export KKZONE=cn curl -sfL https://get-kk.kubesphere.io | VER ...
- 利用sklearn进行字典&文本的特征提取
写在前面 这篇博客主要内容: 应用DictVectorizer实现对类别特征进行数值化.离散化 应用CountVectorizer实现对文本特征进行数值化 特征提取API sklearn.featur ...
- mongodb简单运用
mongodb NoSQL(Not Only SQL),意思是"不仅仅是 SQL",指的是非关系型数据库,是对不同于传统的关系型数据库的数据库管理系统的统称. NoSQL 用于超大 ...
- uni-app开发经验分享二十: 微信小程序 授权登录 获取详细信息 获取手机号
授权页面 因为微信小程序提供的 权限弹窗 只能通用户确认授权 所以可以 写一个授权页面,让用户点击 来获取用户相关信息 然后再配合后台就可以完成登录 <button class="bt ...
- 转 Jmeter测试实践:文件上传接口
Jmeter测试实践:文件上传接口 1.打开jmeter4.0,新建测试计划,添加线程组.根据实际情况配置线程属性. 2.添加HTTP请求. Basic部分修改如下: Advanced部分我做任何 ...
- 从零开始学spring源码之ioc预热:bean的拓展和beanProcessor注册
上篇聊完了bean的解析,说起来做的事情很简单,把xml文件里面配置的标签全部解析到spring容器里面,但是spring做的时候,花了那么大代价去做,后面看看到底值不值得呢. 接下来看看prepar ...