机器学习 学习总结第三章 多变量的线性回归方程

多元线性回归方程

多元线性方程

当我们要预测的Y值受到多个变量的影响时,即有多个特征量,需要建立多变量的方程多变量线性回归方程。
以吴恩达老师课上用到的房价预测为例,
房价预测
房价受到面积,房间数量,楼层数,房子年龄因素影响。
每一组数据和假设θ值看作一个一维(n+1)*1的向量。
向量假设
θ的转置矩阵乘以x的向量就是对于的Y值。如下:
向量矩阵相乘
相乘结果

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

特征方程和代价方程
在求线性方程时假设θ值,来求代价函数的值,通过不断假设θ来找到使代价函数取最小值的θ值。
注意在计算时可以将每一组x的数据看作一维向量,θ的取值也看作向量。
梯度下降算法
不断的用θj减去α倍的导数项来替代θj

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

用以下公式来迭代向量θ的值。
多元θ的迭代公式
以上是通用公式。x的上标i表示的是第i组数据,下标j表示的是第i组数据中的第i个数据当j=0时,x=1
下面是几个举例。
迭代公式

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

特征缩放

在机器学习问题中有多个特征,若能确保这些特征都处在一个相近的范围内, 意思就是不同的特征取值,在相近的范围内,这样梯度下降法就能更快地收敛。
比如在房价预测问题中,如果有两个特征变量,x1和x2。 如果x2和x1的取值范围相差非常大,假设x1的取值范围在(0—2000),而x2的取值范围在(1—5)画出来的代价函数图像回非常的扁长。如图:
代价函数图像
如此在对代价函数用梯度下降法时回花费非常多的事件,效率很低。解决这个问题的一个方法就是特征放缩。
方法就是把x1和x2的取值范围都化为
-1~1
。除以一个范围内最大的数即可,如下:
化1法
如此一来可以使代价函数的图像更加接近圆,用梯度下降法也能更快找到最低点。

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

均值归一化

用xi-ui来代替xi,使得特征值的取值范围具有为0的平均值。如图:
均值归一化
归一化公式如图:
计算公式
ui 为xi取值范围最大值和最小值的平均值。Si为最大值减去最小值。

学习率α

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

如何判断代价函数是否已经收敛,吴恩达老师的视频课中讲解如下图:
代价函数收敛判断
此图同时也可以检测代价函数是否正常工作
横坐标为迭代步数,纵坐标为代价函数J(θ)的值。 当两次迭代 J(θ)的差值小于0.001时,则认为代价函数J(θ)收敛。

如果出现下面几种情况则说明梯度下降算法没有正常工作。
未正常工作梯度函数之一
这样的曲线通常意味着使用的学习率α较小。

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

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

有的适合,通过定义新的特征,可以得到一个更好的模型
多项式回归
以一个住房价格的预测为例,数据集如图:
数据集
为了拟合这个数据集,可以选择一个这样的二次模型
二次模型方程
显然,二次回归方程能比线性回归方程更好的拟合这个数据集。但由于二次函数的对称性,存在递增的过程,也存在递减的过程,而递减过程在房价预测中是不太可能的。所以三次回归方程可能比二次更适合拟合这个数据集。如下:
三次回归方程
为了运用我们之前学的梯度下降法拟合数据集,可以对三次回归方程做一些修改变成以下形式。
三次回归方程修改代换
这个方法的关键在于特征的归一化,因为经过次方计算后的范围将会变得非常巨大,会严重影响代价函数的图像,梯度下降法的工作效率。
也就是说多元回归方程可以通过修改来变成线性回归方程,以便于我们拟合数据集。关键在于归一化

标准方程法

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

由微积分可知,求一元方程的最值可以通过令导数等于0来求解最值点。多元方程也可通过求解偏导数,并且偏导数全部等于0,也可以求出最值。但当特征量非常多时,求解过程依旧很麻烦,并且微分方程可能非常复杂,不适用于求代价函数。
标准方程法
这里假设一个有4组数据的数据集,如下图:
数据集
构建一个m*(n+1)维矩阵X,包含了训练样本的所有特征变量。这个矩阵也被称为设计矩阵。同时也将结果y值构成m*1维向量。θ值可以由图中的公式求出。这样就求出了能够使代价函数最小化的θ值。代价函数J(θ)。如下图:
θ求法一般情况下的设计矩阵及向量如下图所示。几乎对所有的数据集都可以进行这样的处理,并运用公式求出θ值。
一般情况下的数据集

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

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

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

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

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

猜你喜欢

转载自blog.csdn.net/Ace_bb/article/details/104019736