多元线性回归方程

多元线性方程

当我们要预测的Y值受到多个变量的影响时,即有多个特征量,需要建立多变量的方程

多变量输入输出回归预测 多变量回归方程_梯度下降法


以吴恩达老师课上用到的房价预测为例,

多变量输入输出回归预测 多变量回归方程_机器学习_02


房价受到面积,房间数量,楼层数,房子年龄因素影响。

每一组数据和假设θ值看作一个一维(n+1)*1的向量。

多变量输入输出回归预测 多变量回归方程_多变量输入输出回归预测_03


θ的转置矩阵乘以x的向量就是对于的Y值。如下:

多变量输入输出回归预测 多变量回归方程_梯度下降法_04


多变量输入输出回归预测 多变量回归方程_机器学习_05

梯度下降法解多特征的线性回归方程

多变量输入输出回归预测 多变量回归方程_多变量输入输出回归预测_06


在求线性方程时假设θ值,来求代价函数的值,通过不断假设θ来找到使代价函数取最小值的θ值。

注意在计算时可以将每一组x的数据看作一维向量,θ的取值也看作向量。

多变量输入输出回归预测 多变量回归方程_多变量输入输出回归预测_07


不断的用θj减去α倍的导数项来替代θj

α后面的为代价函数对参数θj的偏导数。

用以下公式来迭代向量θ的值。

多变量输入输出回归预测 多变量回归方程_代价函数_08


以上是通用公式。x的上标i表示的是第i组数据,下标j表示的是第i组数据中的第i个数据当j=0时,x=1

下面是几个举例。

多变量输入输出回归预测 多变量回归方程_多变量输入输出回归预测_09

梯度下降运算中的使用技巧

特征缩放

在机器学习问题中有多个特征,若能确保这些特征都处在一个相近的范围内, 意思就是不同的特征取值,在相近的范围内,这样梯度下降法就能更快地收敛。

比如在房价预测问题中,如果有两个特征变量,x1和x2。 如果x2和x1的取值范围相差非常大,假设x1的取值范围在(0—2000),而x2的取值范围在(1—5)画出来的代价函数图像回非常的扁长。如图:

多变量输入输出回归预测 多变量回归方程_梯度下降法_10


如此在对代价函数用梯度下降法时回花费非常多的事件,效率很低。解决这个问题的一个方法就是特征放缩。
方法就是把x1和x2的取值范围都化为-1~1
。除以一个范围内最大的数即可,如下:

多变量输入输出回归预测 多变量回归方程_机器学习_11


如此一来可以使代价函数的图像更加接近圆,用梯度下降法也能更快找到最低点。

总而言之,在进行特征放缩时就是将特征量的取值范围放缩到-1~1的范围
但并不是一定要化到-1~1,如果一个特征量的范围是0-3也可。只要范围较小,上下限相差较近,并且特征量之间差别不大即可。也不用小到0.00001的程度。

均值归一化

用xi-ui来代替xi,使得特征值的取值范围具有为0的平均值。如图:

多变量输入输出回归预测 多变量回归方程_多变量输入输出回归预测_12


归一化公式如图:

多变量输入输出回归预测 多变量回归方程_梯度下降法_13


ui 为xi取值范围最大值和最小值的平均值。Si为最大值减去最小值。

学习率α

即梯度下降算法的更新规则 解决如何选择α的值
总体而言,如果α太小,会导致收敛速度慢,如果α太大,可能导致梯度算法迭代不会减小,而离散,不收敛。
α的取值可以考虑按照
… 0.001 0.01 0.1 1 … 来计算代价函数j(Θ)的最小值。每次改变10倍。

如何判断代价函数是否已经收敛,吴恩达老师的视频课中讲解如下图:

多变量输入输出回归预测 多变量回归方程_数据集_14


此图同时也可以检测代价函数是否正常工作

横坐标为迭代步数,纵坐标为代价函数J(θ)的值。 当两次迭代 J(θ)的差值小于0.001时,则认为代价函数J(θ)收敛。如果出现下面几种情况则说明梯度下降算法没有正常工作。

多变量输入输出回归预测 多变量回归方程_代价函数_15


这样的曲线通常意味着使用的学习率α较小。

如果代价函数没有下降,相应变化波动较大,则通常是α过大。

选择特征的方法和如何得到不同的学习算法

有的适合,通过定义新的特征,可以得到一个更好的模型

多项式回归

以一个住房价格的预测为例,数据集如图:

多变量输入输出回归预测 多变量回归方程_数据集_16


为了拟合这个数据集,可以选择一个这样的二次模型

多变量输入输出回归预测 多变量回归方程_多变量输入输出回归预测_17


显然,二次回归方程能比线性回归方程更好的拟合这个数据集。但由于二次函数的对称性,存在递增的过程,也存在递减的过程,而递减过程在房价预测中是不太可能的。所以三次回归方程可能比二次更适合拟合这个数据集。如下:

多变量输入输出回归预测 多变量回归方程_代价函数_18


为了运用我们之前学的梯度下降法拟合数据集,可以对三次回归方程做一些修改变成以下形式。

多变量输入输出回归预测 多变量回归方程_机器学习_19

多变量输入输出回归预测 多变量回归方程_梯度下降法_20


这个方法的关键在于特征的归一化,因为经过次方计算后的范围将会变得非常巨大,会严重影响代价函数的图像,梯度下降法的工作效率。

也就是说多元回归方程可以通过修改来变成线性回归方程,以便于我们拟合数据集。关键在于归一化

标准方程法

标准方程法提供了一种求线性回归方程中θ值的解析解法,与梯度下降算法的多次迭代求最优值的方法相比,我们可以直接一次性求解θ的最优值。 一步得到最优值

由微积分可知,求一元方程的最值可以通过令导数等于0来求解最值点。多元方程也可通过求解偏导数,并且偏导数全部等于0,也可以求出最值。但当特征量非常多时,求解过程依旧很麻烦,并且微分方程可能非常复杂,不适用于求代价函数。

多变量输入输出回归预测 多变量回归方程_梯度下降法_21


这里假设一个有4组数据的数据集,如下图:

多变量输入输出回归预测 多变量回归方程_机器学习_22


构建一个m*(n+1)维矩阵X,包含了训练样本的所有特征变量。这个矩阵也被称为设计矩阵。同时也将结果y值构成m*1维向量。θ值可以由图中的公式求出。这样就求出了能够使代价函数最小化的θ值。代价函数J(θ)。如下图:

多变量输入输出回归预测 多变量回归方程_梯度下降法_23

一般情况下的设计矩阵及向量如下图所示。几乎对所有的数据集都可以进行这样的处理,并运用公式求出θ值。

多变量输入输出回归预测 多变量回归方程_多变量输入输出回归预测_24

梯度下降法和标准方程法 如何选择?优缺点?

假设有m个训练样本的数据集和n个特征变量。
梯度下降法的缺点之一就是:

  1. 需要选择学习效率α,这就意味着需要尝试多次才能找到合适的学习效率α。
  2. 需要更多次的迭代

标准方程法的优点之一就是不用选择学习效率α也不用迭代多次。不用画代价函数图像,也不用判断代价函数是否收敛
标准方程法的缺点:

  1. 在特征量的数量非常庞大的适合,标准方程法为了求转置和逆会花费大量时间,效率降低,而梯度下降法依旧可以运行得很好。标准方程法大概会花n的三次方时间
    吴恩达老师的建议: 当特征量小于1万时选择标准方程法,大于1万时选择梯度下降法