@songying
2019-03-23T16:53:42.000000Z
字数 1918
阅读 929
machine-learning
简单来说,线性回归算法就是找到一条直线(一元线性回归)或一个平面(多元线性回归)能够根据输入的特征向量来更好的预测输出y的值。
为什么说是线性呢? 因为 y 与因变量 x 之间是线性关系,比如:
上面已经提到, 线性回归的训练就是来确定 w 和 b 的值, 而对于多元线性回归 ,那么问题就变成了如何求解向量 的值。
再线性回归中, 我们可以通过两种方法来求取 , 一种是采用正规方程, 一种是采用梯度下降方法。 下面我来分别介绍这两种方法,并最后做出比较。
我们先给出我们的损失函数:
我们使用 对 求导, 得到:
我们可以采用批量梯度下降算法, 此时有:
参考: 正规方程
梯度下降中需要选择适当的学习率
梯度下降法中需要多次进行迭代,而正规方程只需要使用矩阵运算就可以完成
梯度下降算法对多特征适应性较好,能在特征数量很多时仍然工作良好, 而正规方程算法复杂度为 ,所以如果特征维度太高(特别是超过 10000 维),那么不宜再考虑该方法。
正规方程中矩阵需要可逆。
在线性回归中, 由于最终拟合出来的曲线是一条直线,其拟合能力极为有限(也可以解释为线性回归所求的是具有最小均方误差的无偏估计),因此很容易造成欠拟合现象, 而针对这个问题,有人提出了局部线性回归(LWR)。
局部加权回归其思想很简单: 我们对一个输入 w 进行预测时,赋予了 x 周围点不同的权值,距离 x 越近,权重越高。整个学习过程中误差将会取决于 x 周围的误差,而不是整体的误差,这也就是局部一词的由来。
在LWR中, 其损失函数为:
而通常, 服从高斯分布, 在x周围指数型衰减;
其中, k 值越小,则靠近预测点的权重越大,而远离预测点的权重越小。所以参数k的值决定了权重的大小。 k越大权重的差距就越小,k越小权重的差距就很大,仅有局部的点参与进回归系数的求取,其他距离较远的权重都趋近于零。如果k去进入无穷大,所有的权重都趋近于1,W也就近似等于单位矩阵,局部加权线性回归变成标准的无偏差线性回归,会造成欠拟合的现象;当k很小的时候,距离较远的样本点无法参与回归参数的求取,会造成过拟合的现象。