吴恩达机器学习学习笔记(二)多变量回归模型

在这篇博客中,我们将会讲到单变量回归模型的扩展模型——多变量回归模型。

在上一篇博客中,我们讲到了一个房价预测的例子,在该例子中我们用到了一个特征“房屋面积”x1,如下图:

吴恩达机器学习学习笔记(二)多变量回归模型_第1张图片

在上图中,我们构建了一单变量回归函数h\theta (x)= \theta_{0}x_{0} + \theta_{1}x_{1} 来预测数据,现在,如果我们不止只有一个房子的特征来预测房屋的价格,而是多了“卧室的数量”、“房子的楼层数”以及“房子的年龄”这三个特征来帮助我们预测房价,如下图:

吴恩达机器学习学习笔记(二)多变量回归模型_第2张图片

在上图中,我们使用n来表示特征的数量,即表里面的行数,用x^{(i)}来表示第i行的数据,即具体一个数据,比如x^{(2)}=[1416, 3, 2, 40] ,用x_{j}^{(i)}来表示第i行数据中的第j个特征,比如x_{3}^{(2)}的值就是2。既然我们有了多个特征变量,我们就应该利用这些变量来构建一个新的函数,显然,我们会想到设这个新的函数为 h\theta (x)= \theta_{0}x_{0} + \theta_{1}x_{1} + \theta_{2}x_{2}+ ...+\theta_{n}x_{n}(这该例子中,n=4),其中x0=1, 即 h\theta (x)= \theta_{0} + \theta_{1}x_{1} + \theta_{2}x_{2} + ... + \theta_{n}x_{n},在该函数中,我们可以把x1,x2,x3,x4,x5写成一个n+1维的特征列向量 X=[x0, x1, x2, x3, x4],把参数\theta 0, \theta 1, \theta 2, \theta 3, \theta 4,写成一个n+1维的列向量 \Theta = [\theta 0, \theta 1, \theta 2, \theta 3, \theta 4],我们可以把\Theta转置变成行向量后与X相乘得到 h_{\theta }(x),即h_{\theta }(x)=\Theta ^{T}X,这就是多元变量回归模型的函数表达式。利用该表达式,我们可以写出多变量回归模型的损失函数:

利用该函数,我们能求出所要得到的参数。下面我们先介绍求解该函数的通用方法——梯度下降法。

(一)梯度下降法

首先,先给出梯度下降法的公式:

吴恩达机器学习学习笔记(二)多变量回归模型_第3张图片

求出偏导数代入公式中,可以得到下列公式:

吴恩达机器学习学习笔记(二)多变量回归模型_第4张图片

我们可以看出,多变量回归模型的梯度下降公式与单变量回归模型的梯度下降公式的梯度下降公式是一样的。其中关于学习率\alpha的选择我们已经在吴恩达机器学习学习笔记(一)中进行过阐述。但要注意的是,在多变量回归模型中,如果不同特征的取值范围不同,有的范围是0~3,有的范围是0~100000的话,我们必须要对这些特征进行“归一化”,即\frac{x_{j}^{(i)}-\mu }{x_{max}-x_{min}},其中\mu为第j列特征的平均值,这样能确保我们更好地进行梯度下降。

(二)正规方程法求解

现在,让我们来学习另外一种不同于梯度下降法的求解多变量线性回归模型损失函数的方法——正规方程直接求解法。

我们可以直接求解损失函数J(\Theta )=\frac{1}{2m}(\Theta ^{T}X-Y)^{2}(其中\Theta=[\theta0, \theta1, \theta2, ..., \thetan],X=[x0, x1, x2, ..., xn],Y=[y0, y1, y2, ..., yn])。令L(\Theta )=\frac{1}{2}(\Theta ^{T}X-Y)^{2},先展开L(\Theta):

L(\Theta )=\frac{1}{2}(X\Theta ^{T}-Y)^{T}(X\Theta ^{T}-Y) =\frac{1}{2}(\Theta X^{T}X\Theta ^{T}-\Theta X^{T}Y-Y^{T}X\Theta +Y^{T}Y)=\frac{1}{2}(\Theta X^{T}X\Theta^{T}-2\Theta X^{T}Y+Y^{T}Y)

\frac{\partial L(\Theta )}{\partial \Theta ^{T}}=\frac{1}{2}(\Theta X^{T}X-2X^{T}Y)=0,求得\Theta = (X^{T}X)^{-1}X^{T}Y

使用上面求出来的式子,我们就能求出所需的参数向量,我们可以看出,正规方程解法的优点在于它并不需要去选取学习率以及去进行多次迭代,但如果你的数据集中的特征数量很多,达到了10000个以上的话,那么使用正规方程求解可能会比较慢。更要注意的是,我们的求解式子中用到了矩阵的逆,但并不是所有的矩阵都是可逆矩阵(非奇异矩阵),所以在使用在式子之前,我们需要判断X^{T}X这矩阵是不是可逆矩阵,通常表现为特征的数量多于数据集中数据的数量(即行数),我们可以计算矩阵X的行列式,如果行列式等于0,那X就是奇异矩阵。如果X^{T}X是不可逆矩阵(奇异矩阵),那么我们就得去掉一些多余的特征,或者使用一种“正则化”的方法来解决这种问题。但通常矩阵不是可逆矩阵这种情况很少发生。

以上就是多变量回归模型的基本内容,下一次我们将会介绍一个分类算法——逻辑回归。

你可能感兴趣的:(吴恩达机器学习)