Andrew Ng机器学习课程笔记--week2(多元线性回归&正规公式)
1. 内容概要
- Multivariate Linear Regression(多元线性回归)
- 多元特征
- 多元变量的梯度下降
- 特征缩放
- Computing Parameters Analytically
- 正规公式(Normal Equation )
- 正规公式非可逆性(Normal Equation Noninvertibility)
2. 重点&难点
1)多元变量的梯度下降

2) 特征缩放
为什么要特征缩放
首先要清楚为什么使用特征缩放。见下面的例子
- 特征缩放前

由图可以知道特征缩放前,表示面积的x1变量的值远大于x2,因此J(θ)图像表示就是椭圆的,导致在梯度下降的过程中,收敛速度非常慢。
- 特征缩放后

对各变量特征缩放后绘制出来的损失函数J(θ)明显收敛更快,这也是为什么需要特征缩放的原因了。
实现方法
- feature scaling
\[
\begin{equation}
x_i := \frac{x_i}{x_\max - x_\min}
\end{equation}
\]
每个输入值除以(max - min)
- mean normalization
\[
\begin{equation}
x_i := \frac{x_i - μ_i}{s_i}
\end{equation}
\]
μi: 均值
si: max - min
3) Normal Equation 正规方程式
Normal Equation
\[
\begin{equation}
θ = (X^T·X)^{﹣1}·X·Y
\end{equation}
\]
具体推理过程详见掰开揉碎推导Normal Equation
与梯度下降方法进行比较
| 梯度下降 | 正规方程式 |
|---|---|
| 需要选择步长α | 不需要选择步长α |
| 需要迭代训练很多次 | 一次都不需要迭代训练 |
| O(kn2) | O(n3,计算(XT·X)-1需要花费较长时间 |
| 即使数据特征n很大,也可以正常工作 | n如果过大,计算会消耗大量时间 |
4) 正规方程不可逆
当XT·X不可逆时,很显然此时正规方程将不能正常计算,常见原因如下:
- 冗余特征,在两个特点紧密相关(即它们呈线性关系,例如面积和(长,宽)这两个特征线性相关)
- 太多的特征(例如:m≤n)。 在这种情况下,可以删除一些特征或使用"regularization"。
补充:
- A是可逆矩阵的充分必要条件是 |A|≠0
Andrew Ng机器学习课程笔记--week2(多元线性回归&正规公式)的更多相关文章
- Andrew Ng机器学习课程笔记--汇总
笔记总结,各章节主要内容已总结在标题之中 Andrew Ng机器学习课程笔记–week1(机器学习简介&线性回归模型) Andrew Ng机器学习课程笔记--week2(多元线性回归& ...
- Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归)
title: Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归) tags: 机器学习, 学习笔记 grammar_cjkRuby: true --- 之前看过一遍,但是总是模 ...
- Andrew Ng机器学习课程笔记(一)之线性回归
Andrew Ng机器学习课程笔记(一)之线性回归 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7364598.html 前言 ...
- Andrew Ng机器学习课程笔记(五)之应用机器学习的建议
Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.h ...
- Andrew Ng机器学习课程笔记(四)之神经网络
Andrew Ng机器学习课程笔记(四)之神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365730.html 前言 ...
- Andrew Ng机器学习课程笔记(三)之正则化
Andrew Ng机器学习课程笔记(三)之正则化 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365475.html 前言 ...
- Andrew Ng机器学习课程笔记(二)之逻辑回归
Andrew Ng机器学习课程笔记(二)之逻辑回归 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7364636.html 前言 ...
- Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计
Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7392408.h ...
- 斯坦福机器学习视频笔记 Week2 多元线性回归 Linear Regression with Multiple Variables
相比于week1中讨论的单变量的线性回归,多元线性回归更具有一般性,应用范围也更大,更贴近实际. Multiple Features 上面就是接上次的例子,将房价预测问题进行扩充,添加多个特征(fea ...
随机推荐
- Phpcms整理
一.先去官网下载一个pc(http://www.phpcms.cn/)进行安装 把下载的pc包放在服务器www目录下: 在地址栏访问localhost/project/install/install. ...
- Android - 电池状态
为了解决电池图标的问题,顺带看了看电池信息的获取方法 :自己写了一个小栗子,来验证一下效果 电池的信息,一般都在BatteryManager里面,信息是用广播发出的.我们更新信息需要一个广播接收器 注 ...
- SVN的目录管理规范
Subversion有一个很标准的目录结构,是这样的.比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是 svn://proj/ | +-trunk +-bra ...
- (转)Java compiler level does not match解决方法
背景:工作中导入以前的项目,导出报Java compiler level does not match the versionof the installed Java project facet. ...
- (转)MyBatis在插入的数据有空值时,可能为空的字段都要设置jdbcType
1 引言 前面的所有语句中你所见到的都是简单参数的例子,实际上参数是 MyBatis 非常强大的元素,对于简单的做法, 90% 的情况参数都很少,比如: <select id="sel ...
- cin问题 分类: c++ 2014-08-02 21:13 38人阅读 评论(0) 收藏
string s: while(cin>>s){ cout<<s<endl; } 当输入ss w ww w w 按enter时 输出为 ss w ww w ...
- 利用python发送邮件
找了很多使用python发送邮件的文章, 发现写的并不是太全, 导致坑特别多, 刚把这个坑跨过去, 在此记录下来 本代码使用163作为发送客户端, 接收邮箱随意 首先登录163邮箱, 开启POP3/S ...
- 表达式求值(二叉树方法/C++语言描述)(五)
本例中的二叉树图是使用Graphviz绘制的(Graphviz官网),在Ubuntu Linux下可以使用apt-get命令安装它: sudo apt-get install graphviz 表达式 ...
- CODE大全告诉你java是否开始没落了
CODE大全告诉你java是否开始没落了! 22 岁,对于一个技术人来说可谓正当壮年.但对于一门编程语言来说,情况可能又有不同.各类编程语言横空出世,纷战不休,然而 TIOBE 的语言排行榜上,Jav ...
- python 脚本在linux环境下运行
有两种方式:1.直接使用python xxxx.py执行.其中python可以写成python的绝对路径.使用which python进行查询.2.在文件的头部(第一行)写上#!/usr/bin/py ...