《吴恩达机器学习》4 多变量线性回归

前言

前面讲的线性回归(linear regression)是基于单变量的,例如预测房价的例子中,特征值只有房屋面积这一个变量,我们知道可以应用梯度下降法求解。那么多变量的线性回归又要怎么求解呢,本章就来学习这个课程。

一、多变量线性回归

我们先来回顾下单变量的线性回归的例子,那么此时的特征只有Size这个特征,以Size为未知数x,那么单变量的线性回归的方程就是 hθ(x) = θ0 + θ1x
在这里插入图片描述
上面是单变量的例子,那么假设特征值不止Size这个值,还有房价数目、楼层、使用年限等的特征,我们的线性模型又该这么选取呢?其实也和上面的一样,我们将方程和未知数展开就可以得到这样的模型

hθ(x) = θ0 + θ1x1 + θ2x2 + ··· + θnxn


其中n为特征的数目,x n为第n个特征值,θ n为第n个特征值的权值,我们就可以对其求偏导数,选取合适的学习率用梯度下降法就可以得到每个θ的值了
在这里插入图片描述
其实上面的模型将X 0恒等于1,其中把每个特征值都构建成矩阵,那么

hθ(x) = θ0x0 + θ1x1 + θ2x2 + ··· + θnxn = θTx

二、多元梯度下降法

根据上面的模型函数 hθ(x) = θTx ,我们选取的代价函数是均方误差代价函数,那么对每个权值求其偏导数,选取合适的学习率(下面会介绍)就可以根据梯度下降法得到每个权值θ的值,如下图示
在这里插入图片描述
其中将数据进行特征缩放和选取学习率是多变量线性回归(乃至所有的机器学习问题)的重中之重,下面的小章节对其进行讨论

1、特征缩放(feature scaling)

假设我们的变量是面积数(0-2000),房价数目(1-5),构建我们的线性模型是hθ(x) = θ0 + θ1x1 + θ2x2 如果我们使用的原始的数据,那么绘制出来的代价函数J(θ1, θ2)(是一个碗状的3D图形,下图是投射图)是非常扁长的,进行梯度下降法是收敛得会特别慢(进行更多次的迭代)。而将变量作特征缩放,将两个变量保持在[0, 1]的区间内,那么绘制出来的图示会比较圆,收敛得会比较快,所以提高我们的模型迭代效率,我们必须用特征缩放。
在这里插入图片描述
特征缩放有一种方法也是最常用的方法叫做均值归一化(mean normalization)
比如房子的大小取值介于0 ~ 2000,并且假如房子面积的平均值是等于1000的,那么你可以用这个公式

x1=(size−1000)/2000
类似地,如果你的房子有五间卧室,并且平均一套房子有两间卧室,那么你可以使用这个公式来归一化你的第二个特征x2:

x2=(卧室数−2)/5
在这两种情况下你可以算出新的特征x1和x2,它们的范围可以在-0.5 ~ +0.5之间,当然这肯定不对,x2的值实际上肯定会大于0.5。更一般的规律是用:

(xn−μn)/Sn, , μn为平均值,Sn为最大值−最小值
来替换原来的特征xn。其中定义μn的意思是在训练集中特征xn的平均值。而Sn是该特征值的范围(最大值减去最小值)。
最后值得一提的是:特征缩放其实并不需要太精确,其目的只是为了让梯度下降能够运行得更快一点,让梯度下降收敛所需的循环次数更少一些而已。

2、学习率(Learning rate)

在梯度下降法中,学习率的选取是非常重要的。如果学习率选取得太大,那么模型可能每次都会跳过代价函数的最低值而得不到我们想要的结果,学习率选取得太小,模型的迭代次数会非常多,收敛得非常慢,性能堪忧。那么怎么选取合适的学习率呢,通常得做法是绘制不同θ下J(θ)的函数图像,如下示
在这里插入图片描述
如上所示,学习率太小,图像会变得很平滑,尽管代价函数的值越来越小,但是非常慢。学习率太大产生的结果就会越来越偏差我们的图像。吴恩达在视频中介绍根据学习率和代价函数的图像来调整我们的学习率,通常我们初始学习率设为0.001,然后每3倍增加我们的学习率会比较好,但是也不是绝对的,还是要根据我们的图像来观察。
在这里插入图片描述

3、特征和多项式回归

假如我们的数据集是长这样的(如下示),那么选取一元一次线性方程,看起是不合适,因为图示更像一条曲线。而不同的线性方程只能根据经验来设定不同的模型。
在这里插入图片描述

三、线性回归的正规方程解法与对比

1、正规方程解法

之前的方程前面也看到都是为了求解代价函数J(θ)的最小值,函数的最小值有这样的特点,其偏导数为0,也就是说正规方程的解法可以令偏导数等于0求得θ的值
在这里插入图片描述
那么在我们开始提到的多变量线性方程的例子当做我们假设样本数m = 4,可以根据公式θ = (XTX)-1XTy来求得θ 的值,具体过程就不推导了。
在这里插入图片描述

2、梯度下降法和正规方程的对比

上面介绍了正规方程的解法,这样方法同样可以求得代价函数的最小值,并且也不用选择学习率,不用迭代。但是随着变量的增多,这种方法的计算代价会越来越大,也不通用于机器学习问题(n > 10000)。以下是对比
在这里插入图片描述

总结

以上是《吴恩达机器学习》系列视频 多变量线性回归 一些笔记和见解,以便后续学习和查阅。

猜你喜欢

转载自blog.csdn.net/qq8993174/article/details/86567150