专栏首页派树AIMachine Learning笔记——多变量线性回归
原创

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

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

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

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

为了简化方便,涉及初始的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:

吴恩达 机器学习课程

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 机器学习笔记——Logistic回归算法

    logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。

    阳光罗诺
  • Machine Learning笔记——单变量线性回归

    在机器学习中,样本一般分成独立的三部分训练集(train set),验证集(validation set)和测试集(test set)。其中,训练集用于建立模型...

    阳光罗诺
  • machine learning笔记基础——线性代数基础

    对于复合的矩阵运算问题,和普通数字加减乘除是一样的,有括号先算括号,有乘除就算乘除,最后算加减。例如:

    阳光罗诺
  • 【技术分享】机器学习之回归原理详述(一)

    导语:本文用了从数学层面和代码层面,再结合一些通俗易懂的例子,详细地描述了回归主要涉及的原理和知识,希望对于机器学习的初学者或者有兴趣研究模型具体实现的同学带来...

    腾讯智能钛AI开发者
  • 零基础使用Django2.0.1打造在线教育网站(四):简易留言簿基础开发

    努力与运动兼备~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

    编程思录
  • OBS推流

    治电小白菜
  • 从无到有基于腾讯云TKE部署Kubernetes全流程(四)

    前面的TKE集群工作都有所完成了,现在我们尝试通过这一系列工具使得,流程完全自动化。

    蒋经纬
  • 从无到有基于腾讯云TKE部署Kubernetes全流程(三)

    只能实现一对一挂载,因为硬盘只支持一次挂载,通过硬盘创建的PVC为RWO,单机读写。

    蒋经纬
  • burpsuite 无法获取本地数据

    当Firefox和burpsuite设置代理地址127.0.0.1,端口:80内容可以显示在firefox网页而无法在burpsuite显示,求教是什么原因?

    用户7446386
  • Unity3D基础项目(三):花费一天做个小游戏水果忍者

    最近看了很多教程,代码方面大同小异,主要看思路,即编程思想。所以仿照着做了一款水果忍者,一天就够了。 开发工具:Unity3D(本人使用5.4版本),VS20...

    雷潮

扫码关注云+社区

领取腾讯云代金券