多变量线性回归

之前讨论的都是单变量的情况。例如房价与房屋面积之前的关系,但是实际上,房价除了房屋面积之外,还要房间数,楼层等因素相关。那么此时就变成了一个多变量线性回归的问题。在实际问题中,多变量的线性回归问题是更加常见的。
下面这个例子就是表明了我上面所说的情况。
Andrew Ng机器学习算法入门((六):多变量线性回归方程求解

之前的单变量线性回归的问题,最后求解得到的是一个线性方程。那么在多变量线性回归中,得到的是:
Andrew Ng机器学习算法入门((六):多变量线性回归方程求解

其中X,theta都是一个n阶向量。那么最后的表示方式就变为了:
h 是theta的转置与X的乘积。

多变量梯度下降

和单变量的线性回归方程一样,我们同样会存在一个多变量的线性回归方程。同时也存在一个对应的代价函数。下面就是一个多变量的代价函数。
Andrew Ng机器学习算法入门((六):多变量线性回归方程求解

代价函数的求法同样是根据梯度下降的方式来进行求解。
Andrew Ng机器学习算法入门((六):多变量线性回归方程求解

下面这张图的足有两个公式分别显示了不同的情况,左右是一个最基础的情况,只有两个参数。而右边就是常见的多变量的梯度下降的函数。
Andrew Ng机器学习算法入门((六):多变量线性回归方程求解

相信上面这两张图已经将区别和联系表现出来了。

梯度下降算法实践1——特征缩放

在多变量的梯度下降算法中,如果多个变量能够在同一个或者是相近的区间范围内,这样就很方便问题的求解。当然前提是知道多变量的实际的取值范围。
在房屋的例子中,假设我们是研究房价与房屋大小和房屋房间数量的关系。同时我们知道房屋大小和房间数量间的关系,如房屋大小是位于0-2000英寸,房间数量是1-5。那么我们最后得到的轮廓函数为:
Andrew Ng机器学习算法入门((六):多变量线性回归方程求解

但是如果我们将所有参数x1和x2都的取值都进行标准化,例如集中到[0,1]之间,那么最后轮廓函数变为:
Andrew Ng机器学习算法入门((六):多变量线性回归方程求解

标准化算法也有很多,最简单的方式是:
Andrew Ng机器学习算法入门((六):多变量线性回归方程求解

梯度下降算法实践2——学习率

梯度下降算法的特征缩放考虑的是将变量进行标准化,而学习率考虑的是学习率的大小问题。之前就讨论过,如果学习率过大,则可能无法收敛。如果学习率较小,则迭代次次数过大。
正常的情况下,一般是通过绘制迭代次数和代价函数的图表来观测合适收敛,如下:
Andrew Ng机器学习算法入门((六):多变量线性回归方程求解

也有一些自动测试是否收敛的方法,例如将代价函数的变化值与某个阀值(例如 0.001)
进行比较,但通常看上面这样的图表更好。
通过图表观察,需要注意的问题是,迭代的次数收到学习率a的影响。
一般情况,学习率的选择如下:
0.01,0.03,0.1,0.3,1,3,10

总结

本次的课程,还是比较简单易懂的,都是理论上面的问题,也无须编程实现。

为了能到远方,脚下的每一步都不能少