机器学习之线性回归详解

线性回归的算法:

回归线的均方根误差 回归方程均方差公式_机器学习


重点介绍梯度下降算法。

评估模型好坏的方法:损失函数(lost function)

最简单常见的损失函数:最小均方差(mse)

公式如下:

回归线的均方根误差 回归方程均方差公式_回归_02

预测房价数据,假如模型y=1,最终的值60132无实际意义,但是在对比之下,值越小越好。最好的最小均方差是尽量接近0的,但是根据数据样本不同,不可能等于0

假如预测房价,特征值是面积,目标值是房价,需要拟合出一条线,计算出权重m和b

回归线的均方根误差 回归方程均方差公式_方差_03


步骤一:假设m=0,即y=b,则b为唯一的可调参数,利用最小均方差公式,计算出最小的最小均方差,在此过程中拟合出一个最优的参数b

回归线的均方根误差 回归方程均方差公式_方差_04


回归线的均方根误差 回归方程均方差公式_回归线的均方根误差_05


从上得知,“最优”的b值应该是mse=612对应的241附近,这样的话较为符合房价的价格。(这个过程需要一个一个地找最小mse对应的b,比较麻烦,并且图中给的b是从1开始找的,因为不确定b的值,一旦b的值为负值就麻烦了)

为了能尽快并且准确地找到最合适的b,需要引入一个新概念:学习速率(learning rate)

先看一组图:

回归线的均方根误差 回归方程均方差公式_方差_06

需要找到最小的mse对应的b点 ⬆

回归线的均方根误差 回归方程均方差公式_回归线的均方根误差_07


回归线的均方根误差 回归方程均方差公式_线性回归_08

回归线的均方根误差 回归方程均方差公式_回归_09


不管b从何值开始取,都需要让计算机根据线的趋势动态地找到最小mse值,即求导数,

回归线的均方根误差 回归方程均方差公式_回归线的均方根误差_10


回归线的均方根误差 回归方程均方差公式_回归_11


根据上图,求出的导最小值是-8,对应着最小均方差,此时b=241

尽管如此,此时的b仍是我们用肉眼观察到的最小值,并且b的变化和取值是我们人工加上去的f,计算机可理解不了,我们需要根据一些信号量来调整b的变化。

假如曲线很陡峭的话,例如图b,斜率的值会负的很离谱,那接下来的预测点就是在曲线的右边而不是左边;如果是图a情况,斜率会很大,应该让b往左边偏移 ,也就是说如果斜率为负值,那么接下来的猜测点应该往右移,如果为正值,应该往左移,直到曲线趋于平缓,导数接近于0.

上面我们提到了学习速率(learning rate),它可以根据mse对b的导数,最快地找到最合适的b,如果导数负的越大,那么它就应该变化的越多,如果导数越小,越接近于0,那么它应该变化的越小。
学习速率是一个值,例如0.0001,学习速率是这样用的:本次的b=上一个b - 上一个导数 * 学习速率,如此循环迭代下去,可以很快的找到最接近0的导数对应的b 。

如果学习速率越小的话,例如0.000001,那么b的值变化的越慢,如果学习速率越大的话,例如0.1、0.8,b值变化的越快。变化的越慢就代表要进行大量的迭代,计算量大,不过最终求出的b值会越精确;变化的越快计算量也相应少了很多,但是b值可能不是最好的那个。

如下图:当学习速率为0.00001、0.001,0.01、0.1时:

回归线的均方根误差 回归方程均方差公式_回归线的均方根误差_12

回归线的均方根误差 回归方程均方差公式_线性回归_13

回归线的均方根误差 回归方程均方差公式_回归_14


回归线的均方根误差 回归方程均方差公式_线性回归_15


当learning rate 为0.2时,b慢慢的趋近于245,导数慢慢的趋近于0

回归线的均方根误差 回归方程均方差公式_回归_16

learning rate的值不能太大,否则b只会离正确的点越来越远

为了简化模型,以上便是y=mx+b,(m=0)情况下,求可调参数也就是权重b的值。(这是一种极端情况,正常情况下m≠0)

所以一般情况下我们要对m和b分别求导:

回归线的均方根误差 回归方程均方差公式_回归_17

同理,得出:

回归线的均方根误差 回归方程均方差公式_回归线的均方根误差_18