Machine Learning - week 2 - Multivariate Linear Regression
Multiple Features
上一章中,hθ(x) = θ0 + θ1x,表示只有一个 feature。现在,有多个 features,所以 hθ(x) = θ0 + θ1x1 + θ2x2 + ... + θjxj。
为了标记的方便,增加 x0 = 1
用向量表示

这里的 X 表示单行 Xi。如果是表示所有的 hθ(x),就会 X * θ(X 表示所有 x 的值)
Gradient Descent For Multiple Features 也是同理,扩展到 j 个,就不再赘述。
Gradient Descent in Practice - Feature Scaling
逻辑是:确保所有的 features 在同一尺度。尺度理解为相差不超过 10 倍或者百倍。
Features 的范围越小,总的可能性就越小,计算速度就能加快。
Dividing by the range
通过 feature/range 使每个 feature 大概在 [-1, 1] 的范围内
下题是一个例子:


Mean normalization
将值变为接近 0。除了 x0,因为 x0 的值为 1。

mu1 是 average value of x1 in trainning sets;
S1 是 x1 的范围大小,比如卧室是 [0, 5],那么范围为 5 - 0 = 5。也可以设置成标准差(在练习中就是这个)
需要将 x0 排除。
确保 gradient descent 工作正确

如上图,这个图像是正确的,随着循环次数的增加,J(θ) 主键减小。超过一定循环次数之后,J(θ) 曲线趋于平缓。可以根据图像得出什么时候停止,或者当每次循环,J(θ) 的变化小于 ε 时停止。
图像上升

说明 α 取值大了,应该减小。上图的图像另一种观看方式:

如果 α 足够小,那么能缓慢但完全覆盖。
如果 α 太大:在每次循环时,可能不会减少从而不能完全覆盖。
可以由程序来自动选择,后面会提到。
Features and polynomial regression
可以使用自定义的 features 而不是完全照搬已存在的 features。比如房子有长宽两个属性,我们可以创建一个新属性--面积。然后,表达式变成
,但是这个曲线是先减小后增大的,与实际数据不符(面积越大,总价越高)。所以调整为
(可以调整表达式直到符合数据为止)。
Normal equation
Gradient Descent 随着循环次数增加,逐步逼近最小值。如图:

Normal equation 是通过方法直接计算出 θ。
导数为 0 时最小

然后解出 θ0 到 θn
求解 θ 的方程

Matrix 概念见 Machine Learning - week 1
什么时候用 Gradient Descent 或者 Normal Equation

当 n 较大时,右边的会很慢,因为计算
是 O(n3)
当 n 小的时候,右边会更快,因为它是直接得出结果,不需要 iterations 或者 feature scaling。
如果
是 non-invertible?
1. Redundant features (are not linearly independent).
E.g. x1 = size in feet2; x2 = size in m2
2. Too many features(e.g. m <= n)
比如 m = 10, n = 100,意思是你只有 10 个数据,但有 100 个 features,显然,数据不足以覆盖所有的 features。
可以删除一些 features(只保留与数据相关的 features)或者使用 regularization。
习题
1. 
不知道如何同时使用两种方法,这两种方法是否是顺序相关的?
使用 Dividing by the range
range = max - min = 8836 - 4761 = 4075
vector / range 后变为
1.9438
1.2721
2.1683
1.1683
对上述使用 mean normalization
avg = 1.6382
range = 2.1683 - 1.1683 = 1
x2(4) = (1.1683 - 1.6382) / 1 = -0.46990 保留两位小数为 -0.47
5. 
上面提到了“Features 的范围越小,总的可能性就越小,计算速度就能加快。”(多选题也可以单选)
Octave Tutorial
介绍了 Octave 的常用语法。
Vectorization
使用 vectorization 会比 for loop 更加高效。
例子

更复杂的例子

怎样把 delta vectorized 还没有理解。整体思想了解了。
Octave arithmetic operators 有一些不符合你的直觉。
比如 ^ 与 .^
X =
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
octave:80> X .^ 2
ans =
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
octave:81> X ^ 2
ans =
7 7 7 7 7 7 7
7 7 7 7 7 7 7
7 7 7 7 7 7 7
7 7 7 7 7 7 7
7 7 7 7 7 7 7
7 7 7 7 7 7 7
7 7 7 7 7 7 7
Machine Learning - week 2 - Multivariate Linear Regression的更多相关文章
- machine learning(14) --Regularization:Regularized linear regression
machine learning(13) --Regularization:Regularized linear regression Gradient descent without regular ...
- Andrew Ng 的 Machine Learning 课程学习 (week2) Linear Regression
这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...
- Machine Learning 学习笔记2 - linear regression with one variable(单变量线性回归)
一.Model representation(模型表示) 1.1 训练集 由训练样例(training example)组成的集合就是训练集(training set), 如下图所示, 其中(x,y) ...
- [Machine Learning] 单变量线性回归(Linear Regression with One Variable) - 线性回归-代价函数-梯度下降法-学习率
单变量线性回归(Linear Regression with One Variable) 什么是线性回归?线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方 ...
- Multivariate Linear Regression
Multiple Features Linear regression with multiple variables is also known as "multivariate line ...
- Note for video Machine Learning and Data Mining——Linear Model
Here is the note for lecture three. the linear model Linear model is a basic and important model in ...
- 转载 Deep learning:三(Multivariance Linear Regression练习)
前言: 本文主要是来练习多变量线性回归问题(其实本文也就3个变量),参考资料见网页:http://openclassroom.stanford.edu/MainFolder/DocumentPage. ...
- Andrew Ng 的 Machine Learning 课程学习 (week3) Logistic Regression
这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...
- Machine Learning in Action(4) Logistic Regression
从这节算是开始进入“正规”的机器学习了吧,之所以“正规”因为它开始要建立价值函数(cost function),接着优化价值函数求出权重,然后测试验证.这整套的流程是机器学习必经环节.今天要学习的话题 ...
随机推荐
- C语言-gdb调试工具详解
回车 重复上一次命令 产生可调试的可执行文件:gcc -g main.c -o main, 必须加上-g选线, 表示在可执行文件中加入源文件信息, 但并不是将源文件嵌入可执行文件, 所以在调试时必须保 ...
- JQuery选择器大全 前端面试送命题:面试题篇 对IOC和DI的通俗理解 c#中关于协变性和逆变性(又叫抗变)帮助理解
JQuery选择器大全 jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法 $("#myELement") 选择id值等于myElement的元素 ...
- vb.net版机房收费——助你学会七层架构(二)反射+抽象工厂
上一篇咱们做好了准备工作.数据库设计和Entity层,如今介绍 4.反射+抽象工厂 反射:用来消除Switch和if的,这里我尽量简单地介绍,以便大家理解.反射其有用起来非常easy.你就觉得他就是决 ...
- linux-centos7中lnmp服务器编译安装含systemctl启动service(转)
centos7 nginx mysql php 可以分开安装 然后在配置nginx互php的 先安装一些必要的库 ---------------------------------------- ...
- 在Jboss中使用Quartz
Jboss EJB默认使用的定时服务是TimerService,TimerService的使用过程较为繁琐,需要使用一个无状态的serviceBean去实现scheduleTimer, timeout ...
- Spring 读取配置文件(二)
Spring 读取配置文件并调用 bean package cn.com.test.receive; import org.springframework.beans.factory.annotati ...
- __attribute__系列之aligned
__attribute__的属性aligned,作用是为了设置字节对齐. aligned是对 变量和结构体进行 字节对齐的属性设置. 通过aligned属性设置(aligned(对齐字节数)),可以显 ...
- 使用NGINX反向代理做小偷站
用Nginx的反向代理可以轻松山寨对方的网站,但是反向代理后的网站还是有对方的绝对链接时,怎么办?所以要用替换链接方法. 1 使用官方的的模块 编译参数–with-http_sub_moduleub_ ...
- python语言 buffer类型数据的使用 'ascii' codec can't decode byte 0xe5 问题的解决
在python中我们使用buffer类型时可以将其转换为str类型. 如果obejct的类型为<type 'buffer'> ,可以使用str(object)将其转换为字符串类型. 在转换 ...
- 如何创建Windows定时任务
我们经常使用电脑,有没有那么一个瞬间想着要是电脑可以每隔一段时间,自动处理一件事情就好了呢? 其实Windows还真有这样的功能,很多软件检测更新就是通过这个方法实现的. 这次我们来做一个简易的喝水提 ...