机器学习 (二) 多变量线性回归 Linear Regression with Multiple Variables
文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准。感谢博主Rachel Zhang 的个人笔记,为我做个人学习笔记提供了很好的参考和榜样。
§ 2. 多变量线性回归 Linear Regression with Multiple Variables
1 多特征值(多变量) Multiple Features(Variables)
首先,举例说明了多特征值(多变量)的情况。在下图的例子中,$x_1,x_2,x_3,x_4$都是输入的变量,因为变量个数大于一,所以也称为多变量的情况。

于是引出多变量线性回归的一般假设形式:

2 多变量线性回归中的梯度下降法(gradient descent for multiple variables)

在以上的假设形式中,我们把$\theta$看成是一个$n+1$维的向量,把$J$看成是一个带有$n+1$维向量的函数。
下面的习题检测了对概念的理解:(1 注意$\sum$的位置 2 注意开始累加的位置)

将单变量与多变量线性回归中的梯度下降法作出比较:

3 特征缩放 Feature scaling
如果不同变量之间的取值范围差别较大,使用梯度下降法时可能会花费较长时间、反复来回震荡。面对这种由于不同变量之间取值范围差别较大的所导致的问题,我们引入特征缩放(feature scaling)的方法来解决。

特征缩放(feature scaling) 使得数据特征调整到一定的范围内,比如[-1,1]之间。当然,这只是要求数据特征调整到一个大概的范围,具体实现的时候只要差不多即可,不一定要完全符合[-1,1]的范围。例如以下几种,就分别是正确或错误的特征缩放范围:

均值归一化(Mean normalization)处理:用$\frac{x_i-\mu_{i}}{\sigma}$取代$x_i$,或是简便地用$\frac{x_i-\mu_{i}}{max-min}$取代$x_i$。

下题考察了上述知识点的应用:

4 梯度下降法的应用 - 学习速率 Gradient Descent in practice - Learning Rate
下图左边是以迭代次数为横轴,迭代指定次数以后得出的$\theta$对应$J(\theta)$的值为纵轴绘制的函数图像。如果梯度下降算法正常工作,那么每一步迭代之后,$J(\theta)$的值都应该减小。对于不同的问题,梯度下降算法所需的迭代次数可能会相差很大。
我们可以依靠自动收敛测试来判断是否正确收敛,但通常我们很难确定其临界值,因此实际中更多是使用$J(\theta)$关于迭代次数的函数图像来判断的。

当$J(\theta)$关于迭代次数的函数图像呈现如下图所示的递增或是“先下降后上升,再下降再上升……”时,我们可以使用一个更小的$\alpha$使得梯度下降算法正确工作。对于一个正确的$\alpha$而言,$J(\theta)$在每次迭代后都会下降;但如果$\alpha$太小,那么梯度下降算法将会收敛得很慢。

下题考察了上述知识点:(1) $\alpha$过大时,$J(\theta)$可能不会在每次迭代后减少 (2) $\alpha$太小的时候,梯度下降法的收敛速度会变慢

在选择学习速率时,我们一般以约3倍递增的形式,寻找能够正确收敛并且速度不会太慢的学习速率,使之尽可能快且正确地收敛。

5 特征与多项式回归 Features and polynomial regression
有时候,我们可以通过定义一个新的特征来优化模型,例如在房价预测模型中,定义一个新的$Area$使得$Area=frontage*depth$来优化模型。

对于多项式回归,可能会有不同的模型可供选择。要使得模型与数据能够拟合,我们可以参考以下方法做出修改来实现。如果使用梯度下降法,就要注意对数据特征进行缩放处理,使其具有可比性。

同时,还要注意对特征的选择,并且通过设计不同的特征,使得可以用更加复杂的函数去拟合数据。
例如在对房价数据的分析中,如果选择二次模型作为假设,二次函数最后会下降,但实际中房价不会随着房子面积的增长而下降,因此二次模型不是一个理想的模型。于是引入以下的模型:

下题考察了特征缩放:

6 正规方程 Normal Equation
在训练集中加上一列对应特征变量$x_0$,然后构造矩阵$X,y$,然后得出使得$J(\theta)$最小的$\theta$:

具体推广后的构造方法如下:

当使用正规方程法时,不需要特征变量归一化或是特征缩放。

下面介绍了梯度下降法与正规方程法各自的优劣及适用范围:

7 正规方程的不可逆性 Normal Equation Noninvertibility

利用pinv可以计算出$\theta$的值,即使$(X'X)$是不可逆的。
当$(X'X)$不可逆时,可能有两种原因:1 有多余的特征(互为线性函数) 2 特征过多。
解决方法:1 删除多余特征 2 用较少的特征尽可能反应较多的内容或使用正则化(regulation)方法

笔记目录
(一)单变量线性回归 Linear Regression with One Variable
(二)多变量线性回归 Linear Regression with Multiple Variables
(四)正则化与过拟合问题 Regularization/The Problem of Overfitting
(五)神经网络的表示 Neural Networks:Representation
(六)神经网络的学习 Neural Networks:Learning
(七)机器学习应用建议 Advice for Applying Machine Learning
(八)机器学习系统设计Machine Learning System Design
(九)支持向量机Support Vector Machines
(十)无监督学习Unsupervised Learning
(十一)降维 Dimensionality Reduction
(十二)异常检测Anomaly Detection
(十三)推荐系统Recommender Systems
(十四)大规模机器学习Large Scale Machine Learning
机器学习 (二) 多变量线性回归 Linear Regression with Multiple Variables的更多相关文章
- 机器学习(三)--------多变量线性回归(Linear Regression with Multiple Variables)
机器学习(三)--------多变量线性回归(Linear Regression with Multiple Variables) 同样是预测房价问题 如果有多个特征值 那么这种情况下 假设h表示 ...
- 机器学习第4课:多变量线性回归(Linear Regression with Multiple Variables)
4.1 多维特征 目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征, 例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x1,x2,...,xn).
- 斯坦福第四课:多变量线性回归(Linear Regression with Multiple Variables)
4.1 多维特征 4.2 多变量梯度下降 4.3 梯度下降法实践 1-特征缩放 4.4 梯度下降法实践 2-学习率 4.5 特征和多项式回归 4.6 正规方程 4.7 正规方程及不可逆性 ...
- Ng第四课:多变量线性回归(Linear Regression with Multiple Variables)
4.1 多维特征 4.2 多变量梯度下降 4.3 梯度下降法实践 1-特征缩放 4.4 梯度下降法实践 2-学习率 4.5 特征和多项式回归 4.6 正规方程 4.7 正规方程及不可逆性 ...
- python实现多变量线性回归(Linear Regression with Multiple Variables)
本文介绍如何使用python实现多变量线性回归,文章参考NG的视频和黄海广博士的笔记 现在对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为( x1,x2,..., ...
- 4、、多变量线性回归(Linear Regression with Multiple Variables)
4.1 多维特征 目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x1,x2,...xn) 增添更多特征后, ...
- Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable
原文:http://blog.csdn.net/abcjennifer/article/details/7700772 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...
- 【原】Coursera—Andrew Ng机器学习—Week 2 习题—Linear Regression with Multiple Variables 多变量线性回归
Gradient Descent for Multiple Variables [1]多变量线性模型 代价函数 Answer:AB [2]Feature Scaling 特征缩放 Answer:D ...
- 斯坦福机器学习视频笔记 Week2 多元线性回归 Linear Regression with Multiple Variables
相比于week1中讨论的单变量的线性回归,多元线性回归更具有一般性,应用范围也更大,更贴近实际. Multiple Features 上面就是接上次的例子,将房价预测问题进行扩充,添加多个特征(fea ...
随机推荐
- js使用hover事件做一个“个人中心”的浮动层
原材料知识点:hover html: css:
- sql*plus
[sql*plus创建txt文档编辑sql语句] (1)创建一个txt,命名doc SQL> ed doc; /*ed 文件名*/ (2)在doc.txt文件编辑sql语 ...
- JSONP--解决ajax跨域问题
JSON和JSONP JSONP和JSON好像啊,他们之间有什么联系吗? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.对于JSON大家应该是很了解了吧 ...
- 爬虫——Handler处理器 和 自定义Opener
我们之前一直都在使用的urlopen,这是一个特殊的opener(也就是模块帮我们构建好的). 但是基本的urlopen()方法不支持代理.cookie等其他的HTTP/HTTPS高级功能.所以要支持 ...
- Linux运维工作中需要掌握的知识
说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具.我就大概列出这几方面,这样入门就基本没问题了.linux系统如果是学习可以选用redhat或centos,特别是cent ...
- sudo及visudo
sudo是一种权限管理机制,管理员可以授权普通用户去执行root的操作,而不需要知道root的密码,它依赖于/etc/sudoers这个文件,可以授权给哪个用户在哪个主机上能够以管理员的身份执行什么样 ...
- npm cnpm npx nvm 傻傻分不清
用过 npm cnpm吗?知道 npx nvm 吗? 唔~ npm npm 的全称是 Node Package Manager 是 JavaScript 世界的包管理工具,并且是 Node.js 平台 ...
- 【c语言学习-11】
/*指针*/ #include void charPointFunction(){ //字符型数组 char *x="I like code",y[10];//使x[]初始化,使y ...
- C#中的线程(二)线程同步基础 (读后感)
参考文章:https://www.cnblogs.com/dingfangbo/p/5769501.html 一.lock 确保只有一个线程访问某个资源或某段代码.通俗的讲就是多个线程操作相同的锁对象 ...
- 3. 进程间通信IPC
一.概念 IPC: 1)在linux环境中的每个进程各自有不同的用户地址空间.任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间是不能相互访问. 2)如果进程间要交换数据必须通过内核,在 ...