Multiple Features

上一章中,hθ(x) = θ0 + θ1x,表示只有一个 feature。现在,有多个 features,所以 hθ(x) = θ0 + θ1x1 + θ2x2 + ... + θjxj。
为了标记的方便,增加 x= 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,因为 x的值为 1。

mu1 是 average value of x1 in trainning sets;

S是 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的更多相关文章

  1. machine learning(14) --Regularization:Regularized linear regression

    machine learning(13) --Regularization:Regularized linear regression Gradient descent without regular ...

  2. Andrew Ng 的 Machine Learning 课程学习 (week2) Linear Regression

    这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...

  3. Machine Learning 学习笔记2 - linear regression with one variable(单变量线性回归)

    一.Model representation(模型表示) 1.1 训练集 由训练样例(training example)组成的集合就是训练集(training set), 如下图所示, 其中(x,y) ...

  4. [Machine Learning] 单变量线性回归(Linear Regression with One Variable) - 线性回归-代价函数-梯度下降法-学习率

    单变量线性回归(Linear Regression with One Variable) 什么是线性回归?线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方 ...

  5. Multivariate Linear Regression

    Multiple Features Linear regression with multiple variables is also known as "multivariate line ...

  6. 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 ...

  7. 转载 Deep learning:三(Multivariance Linear Regression练习)

    前言: 本文主要是来练习多变量线性回归问题(其实本文也就3个变量),参考资料见网页:http://openclassroom.stanford.edu/MainFolder/DocumentPage. ...

  8. Andrew Ng 的 Machine Learning 课程学习 (week3) Logistic Regression

    这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解 ...

  9. Machine Learning in Action(4) Logistic Regression

    从这节算是开始进入“正规”的机器学习了吧,之所以“正规”因为它开始要建立价值函数(cost function),接着优化价值函数求出权重,然后测试验证.这整套的流程是机器学习必经环节.今天要学习的话题 ...

随机推荐

  1. 基于Vue开发的tab切换组件

    github地址:https://github.com/MengFangui/VueTabSwitch 1.index.html <!DOCTYPE html> <html lang ...

  2. cocos2d-x 重力感应 加速器的使用

    CSDN开通已有两三年,今天作为一名刚入行的菜鸟写下自己的第一篇Blog. 刚好项目中须要用到重力感应,google下发现重力感应的使用很easy. 例如以下: 第一步: 在当前层开启重力感应.函数: ...

  3. 工作流学习——Activiti流程变量五步曲

    一.前言 上一篇文章我们将流程实例的启动与查询,任务的办理查询都进行了介绍,我们这篇文章来介绍activiti中的流程变量. 二.正文 流程变量与我们寻常理解的变量是一样的,仅仅只是是用在了我们act ...

  4. lua与c++ 中布尔布bool值对应关系

    lua代码返回值为真c++ lua_toboolean 返回一个 int  lua true = 1 false = 0 c++给lua返回 lua_pushboolean 1 = true 0 = ...

  5. 借鉴炉石传说的战棋游戏《DarkWar》

    <炉石传说>是现在很火的休闲对战游戏,本人也非常喜欢玩,玩的时候经常想能不能把炉石的这些元素融入到战棋类游戏中,于是思索良久,又恰逢游戏蛮牛开展第三届蛮牛杯游戏开发大赛,于是用Unity3 ...

  6. AngularJs学习笔记(2)——ng-include

    编写html文档的时候,为了实现代码模块化,增加复杂页面的代码可读性和可维护性,我们常常会想到将代码分散写入不同的HTML文件 angularJS里面的ng-include指令结合ng-control ...

  7. c++opencv项目移植到Android(Mat—》IplImage*)

    近期将PC机上的行人检測的C++项目移植到Android平台遇到非常多的问题.因此,记录一些重点. 1. 最好能够參照Opencv sample 里面的mix-processing. 2. 数据结构的 ...

  8. jpeg错误打印结构

    struct jpeg_error_mgr { /* Error exit handler: does not return to caller */ JMETHOD(void, error_exit ...

  9. ashx后门

    一.标准ASPX一句话木马 .NET平台下的一句话木马则百年不变,最常见的当属下面这句 <%@ Page Language=”Jscript”%><%eval(Request.Ite ...

  10. LeetCode581. Shortest Unsorted Continuous Subarray

    Description Given an integer array, you need to find one continuous subarray that if you only sort t ...