2、机器学习中的线性回归

这是我接触到的第一个机器学习算法—线性回归算法
2、机器学习中的线性回归
仍然是一个预测房价的问题,前面提到了这是一种监督学习,水平坐标为房子的面积,纵坐标为房价,你所要做的就是拟合出一条线来尽可能的逼近这些点,找出其中的规律。这也是一个回归问题。什么是回归?回归就是用之前的数据来预测出一个准确的输出,比如说房价。

我们提到的数据集就是训练集(Training Set),而我们拟合的线就是我们所作的假设(hypothesis)–用h来表示,我们给一个输入X,就会有一个对应的输出y,那么可以说h就是一个从输入X到输出y的函数映射。下图就是监督学习的方式,我感觉有必要深刻的理解。
2、机器学习中的线性回归
前面提到了假设h,如何去表示这个假设呢?我们可以假设:
2、机器学习中的线性回归
这是一个单变量线性回归,因为只有一个特征输入X
也可以假设
2、机器学习中的线性回归
这是一个多变量线性回归,因为有多个特征输入X
先来介绍一下单变量线性回归的吧,多变量的原理上差不多。
(1)代价函数J(θ)
我们定义了一个假设h,我们如何去判断我们的h是否合适的,这时候我们要用到代价函数J。有点类似与方差的平均值,看下图:
2、机器学习中的线性回归
我们现在有三个点,而h是那条直线,当X分别取123的时候,直线上也会对应三个点,那么这三个点和本身数据的三个点 yi 就会有误差,而因此代价函数J就是从误差入手,可以定义为:
2、机器学习中的线性回归
(2)参数θ
前面定义了一个假设函数,那么我们的目的就是要通过改变h中的θ参数的值来使得我们的代价函数的值趋近于最小。比如说下图中,通过改变参数的值来使得最终的代价函数的值到达最底部。(直观的理解,当然现实中的代价函数可能不会这样只有一个最底部,可能会有好多好多的坑等你踩!)
2、机器学习中的线性回归
2、机器学习中的线性回归
(3)梯度下降法
好,我们的目的有了,方法呢?我们如何去求θ使得代价函数最小呢?应用梯度下降法。下图是吴恩达老师课上的例子,这正是梯度下降法的思想:想像你站在一个山顶上,环顾四周,目的就是要找一个下山的方向使得你迈出一步后,下降高度最大,然后如此反复,我们就会迈着小碎步一直走啊走啊,走到山坡上的一个局部最低点。
2、机器学习中的线性回归
这是梯度下降法参数更新的基本公式形式:
2、机器学习中的线性回归
其中α是学习的速率(learning rate),它的值越大你的步子也越大,太小的话迭代速度缓慢,太大会造成越过极小值点。后面一项就是对代价函数求偏导数。每一次都同时让所有的参数减去学习速率乘以代价函数的导数。

接下来,将梯度下降法应用到线性回归中:
2、机器学习中的线性回归
右边是线性回归模型,有假设h和代价函数J,左边则是梯度下降算法,将求导的函数自然就是代价函数J,然后应用公式更新每个参数的值。(具体步骤省略,求导不难),最终得到:
2、机器学习中的线性回归
好的,这就是线性回归算法,下一篇,将会学习多变量线性回归,并且会接触到另一种算法来代替梯度下降算法,那就是正规方程解法,这两种算法各有适用的场合。
下篇再聊吧!