美文网首页AI
多元线性回归

多元线性回归

作者: AnuoF | 来源:发表于2018-08-31 12:38 被阅读0次

概述

之前我们讲了最基本、最简单的一元线性回归算法,本章主要讲解多元线性回归,以及梯度下降、特征缩放和正规方程解等方法的应用。

模型

正如之前我们讲的那样,简单线性回归在只有一个特征参数时的假设函数如下所示:

那么,如果我们有多个特征时,情况是怎么样的呢?我们还是从卖房子的例子说起,影响我们房子的售价除了大小之外,还有房子的楼层,房间数,房子的年龄,实时上房子的卖价与其大小、楼层、年龄这些都有关系,所以我们得到如下表的房价关系:

根据上面的数据(训练集),我们用x_1表示大小,x_2表示房间数,x_3表示楼层,x_4表示年龄,y表示售价,n表示特征数,那么我们的假设函数表示如下:

我们如何来演变这个公式?假设x_0=1,那么上面的公式可以写成:

麻烦您再回想一下矩阵的和向量的乘法(如果您不太清楚,可以翻看下我之前写的矩阵和向量的文章),看你能不能找到一些端倪呢?我们可以将参数θ和特征x看做两个向量,如下:

其中x_0=1,,我们的假设函数是不是可以这样写:

我们来验证一下吧:

是不是就还原回去啦,这就是我们的多元线性回归的假设函数

梯度下降

一元线性和多元线性的区别就是特征数从1变成了n,n≥1,也就是说多元包含一元,一元只是特例,从上面得知其假设函数为:

参数为:θ_0,θ_1,…,θ_n,可以看做n+1维向量
那么我们的代价函数为:

梯度下降算法为:
重复直到收敛 {

}
结合我们在讲一元线性回归的梯度下降,采用多元微分法,我们不难得出:

这样我们就求出的θ值,从而可以得到我们的算法模型。

特征缩放

特征缩放的方法:确保多个特诊取值在相近的范围内,这样梯度下降法就能更快地收敛。怎样理解它的意思呢?
假设我们的房子大小x_1取值(0,2000),卧室数量x_2取值(1,5),如果其中有的特征值特别大,那么我们画出来的等值线就可能是瘦高的椭圆,如果我们对特征值进行缩放,x_1 := x_1/2000,x_2:=x_2/5,两个特征值都约束在(0,1)之间,我们画出的代价函数J(θ)等值线是这样的:

从上图可以看出,经过特征缩放之后,我们的梯度下降算法将更快的达到收敛。
除了特征除以最大值来缩放之外,我们还可以采用均值归一化的方法来进行缩放,具体如何操作呢?其公式:特征值 = (值 – 平均值)/(最大值-最小值),如房子大小x_1取值(0,2000),卧室数量x_2取值(1,5),那么我对x_1和x_2重新赋值如下:

这样x_1的取值范围变成[-0.5,0.5],x_2的取值范围变成[-0.25,0.75],就达到了我们特征缩放的目的,x_1和x_2的取值都在(-1,1)区间。(在特征缩放时不需要太过精确,只要能达到我们的目的【确保多个特诊取值在相近的范围内】即可)
一般来说,我们进行特征缩放时,通常情况下是将特征的取值约束到-1到+1的范围内,当然也不是严格执行的,只要约束在(-3,+3)的范围还是可以接受的。
强调一点,特征缩放是针对x_1,x_2,…,x_n,而不是x_0,因为x_0是我们为了运算方便人为赋值1的。

学习率****α

在梯度下降中,我们的迭代公式如下:

上一篇文章中我们提到过学习率,学习率会影响梯度下降算法执行的快慢,学习率太小,则收敛速度慢,过大又可能造成发散而无法收敛,怎样确保我们的梯度下降算法是在正确执行呢?
梯度下降算法的目的是找到θ值,能够得到代价函数J(θ)的最小值。如果梯度下降是正确运行的话,画出来的函数图形应该大致如下:

随着迭代次数的增加J(θ)的值越来越小,且到最后变化很小,趋近于0。但是如果我们画出来的图形如下:

这种情况应该就是学习率过大,导致代价函数的值发散,会造成无法收敛。所以,我们可以通过绘制迭代次数与代价函数的值,可以直观的看出梯度下降是否正确工作。
我们又怎样来选择学习率呢?我们通常会尝试一系列的α值,比如0.001,,0.01,0.1,1,然后取不同的值绘制代价函数J(θ)随迭代次数变化的曲线,然后选择快速下降的一个α值,这个过程一般是经验使然。

多项式回归

当我们进行线性回归时,是可以有多种模型来选择的,具体选择哪种模型,需要结合实际情况,如我们拟合房子价格的问题,我们的模型是一个二次函数,正如您所知道的,二次函数在达到一个顶点之后是要下降的,但是实际情况是房价不可能下降,或者比之前的还低,所以我们可以考虑使用多项式模型来进行拟合,比如:

这样的话就更贴合实际情况,绘制出来的图形如下所示:

如上图,绿色线条表示二次函数,淡黄色线条表示多次函数,蓝色表示两者的延长线。(画得很挫,但是只要您明白意思就行了,不要太过纠结。)
假设函数模型并不是固定或者唯一的,比如我们之前的一元线性,因为它不够理想,所以,我们可以选择如下两个模型:

最终选择哪个模型,需要比较看哪个模型对训练集的数据拟合得最好。

正规方程

我们除了采用梯度下降来求θ的值之外,还可以采用正规方程法来计算θ的值,它可以直接一次性求解θ的最优值。那么正规方程究竟是如何做的呢?
假设我们的代价函数如下:

其中,θ为实数,这是一个二次函数,如何求解它的最优值呢?在梯度下降中我们得知:

如上面的公式,当J(θ)函数的偏导等于0时,梯度下降的迭代停止,也就是我们需要求解的θ。(这里可能需要一些微积分的知识,不过不必担心,就算没有储备也没关系,我们继续)
以文章开头的训练数据为例:

数据样本数m=4,我们新加一个x_0,构建出一个矩阵X和向量y,如下:

X是一个mx(n+1)矩阵,y是一个m维向量,我们可以用如下公式计算θ的值:

解释下这个公式:X转置乘以X的逆乘以X转置乘以y。我们暂时不推导这个公式的由来,后期再研究,现在您先知道是这么回事就行。
这就是正规方程法,之前我们提到了特征缩放,您在采用方程法求解时,是不需要进行特征缩放的。
我们来对比梯度下降和方程法的区别有哪些呢?

当特征数n小于10000时可采用方程法,不然您就需要考虑梯度下降法了。

结束

以上就是我对多元回归的一些简单理解和总结,希望可以和大家交流。

Anuo.
成都
Aug 31,2018

相关文章

  • 机器学习系列(十三)——多元线性回归及knn做回归

    多元线性回归理论 相比于样本只有一个特征值的简单线性回归,多元线性回归往往更能反映研究对象的真实情况。多元线性回归...

  • 回归分析 | R语言 -- 多元线性回归

    多元线性回归 多元线性回归 是 简单线性回归[https://www.jianshu.com/p/f8b2a320...

  • Matlab一元/多元回归(后续会有更新)

    一元线性回归&一元非线性回归 多元回归/逐步回归 多元回归 先画散点图,看有没有线性性质,再决定能不能用多元线性回...

  • 各类统计方法R语言实现(六)

    今天是各类统计方法R语言实现的第六期,我们主要介绍多元线性回归、回归诊断。 多元线性回归 多元线性回归指的是用多个...

  • 2020-02-14

    线性回归:线性回归分为一元线性回归和多元线性回归,一元线性回归用一条直线描述数据之间的关系,多元回归是用一条曲线描...

  • Linear Regression

    二元线性回归 多元线性回归 其中用到

  • 多元线性回归(multiple regression model

    之前学习了单一线性回归,这次主要研究多元线性回归,以及提高多元数据的模型精度的一些方法 1、什么是多元线性回归,我...

  • 多元线性回归2021.3.18

    1.多元线性回归(变量之间相互独立) 当预测变量不止一个时,简单线性回归就变成了多元线性回归,相当于求解多元方程。...

  • Machine-Learning-Day-3

    多元线性回归 Day 3的任务是多元线性回归. 开始任务~ Step1 Data Preprocessing 首先...

  • Linear Regression

    在线性回归模型中,我们分为单元线性回归和多元线性回归(Multivariate Linear Regression...

网友评论

    本文标题:多元线性回归

    本文链接:https://www.haomeiwen.com/subject/okfswftx.html