前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Machine Learning笔记——多变量线性回归

Machine Learning笔记——多变量线性回归

原创
作者头像
阳光罗诺
修改2018-12-07 11:13:39
9360
修改2018-12-07 11:13:39
举报

在之前的单变量线性回归问题中,我们是通过房屋的大小来作为预测房屋价格。但是我们知道了很多其他的变量,例如卧室的数量,楼层的数量,房子的年龄等。

那么之前的假设函数就会不再之前的函数表达式,取而代之的是:

下面是重新该写后的假设函数的形式:

为了简化方便,涉及初始的x_0=1,

以上就是多元线性回归。多元——使用多个特征值或者是变量来预测Y的值。

使用梯度下降法来处理多元线性回归问题

执行偏导数之后如下:

梯度下降法的应用实例——特征缩放的方法

特征缩放前后,相对应的代价函数的图形也会随之不同。

一般地,当我们执行特征缩放的时候,通常的目的是:将特征的取值约束到-1到+1的范围内。特征x_0总是等于1,也总是在此范围之内,但对于其他的特征而言,可以通过其他的分数使得它处于同一范围内,特征的值要控制在非常小的范围内。但是不能太小,也不能太大。

不用过于担心特征是否在完全相同的范围或者是区间内,但是只要它们之间足够接近的话,梯度下降法就会正常地运行。

除了将特征除以最大值以外,在特征缩放中,会使用特征均一化的操作。

对于而言,不同的数值造成的图形结构也是不一样的。例如

当α很小的时候,我们可以看到曲线达到一定的迭代次数之后就收敛,或者说找到一个合适的阈值ε也是很困难的,为了检查梯度下降算法是否收敛,可以从图中直接看得出收敛。而不是依靠自动收敛测试。

一般来说,我们可以从图形中直接可以看得出算法有没有正常地运行。例如:α过大,就会出现以下的图形:

总结:

如果α太小的话,就会遇到收敛速度很慢的问题,如果α太大的话,代价函数T(θ)可能不会在每次迭代都下降。甚至可能会不收敛。也会有一些情况,就是如果学习率α过大,也有可能会出现收敛缓慢,但是代价函数T(θ)并不会在每次迭代之后都下降。但是通常情况下,通常绘制T(θ)随迭代步数变化的曲线。

继续拿预测房价为例,除了之前的特征之外,还有其他新的特征值

多项式回归的问题

例如:我们有如下图所示预测房子的价格的数据集,可能会有多个不同的模型用于拟合。选择之一就是二次模型,因为直线似乎并不能很好地去拟合这些数据。然而二次函数最终会下降,为了能够拟合数据集的变化,会继续使用三次方的函数,这样子就不会下降。

对于这样子的多元线性回归,做一下简单的修改来实现:

但是除了三次函数的拟合之外,采用二次函数,我们不希望说因为房子的面积的增加而导致房子的价格还下降。所以就可以使用

由于根式的图像是上升的,最后趋于平缓状态,也是可以拟合所给的数据集。

正规方程

对于某些线性回归问题,会给我们更好的方式去得到未知参数θ的最优解。

在之前优质使用的方法——梯度下降法中,为了得到最小化代价函数T(θ),会使用迭代算法。通过梯度下降的多次迭代来收敛到全局最小值。

实例:

例如:假设我们有四个训练样本,这四个训练样本就是所有的数据。我们所要做的是在数据集中,加入一列来对应额外的特征变量x_0,取值永远都是1。

接下来就是构建一个矩阵X(m*(n+1)维矩阵),矩阵X包括了训练样本中的所有数据,也构建一个向量y(m维向量)。其中m是训练样本数量,n和n+1是特征变量数

在一般情况下,假设我们有m个训练样本。其中的X称为设计矩阵(designed Matrix)

为了能够明白下列式子,作了具体的说明:

在Octave或者是MATLAB中,具体的实现方式如下:

Pinv(X’*X)*X’*y

使用了正规方程,那我们直接不用特征缩放的方法。

至于什么时候正规方程和特征缩放呢?可以根据以下优缺点来判断:

假设我们有m个训练样本,n个特征变量

使用octave绘制正余弦曲线图:

t=[0:0.01:0.98];

y1=cos(2*pi*4*t);

plot(t,y1)

y2=sin(2*pi*4*t);

plot(t,y2)

再次绘制了正切函数之后的图像如图所示:

例如:使用magic函数

A=magic(5)

imagesc(A)

使用octave程序写控制语句

例如

for i=1 :10 ;

v(i)=2^i ;

end ;

indices=1 :10

所以

for i=indices;

Reference:

吴恩达 机器学习课程

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档