[关闭]
@songying 2019-03-23T16:53:42.000000Z 字数 1918 阅读 929

机器学习: 线性回归

machine-learning


线性回归简介

简单来说,线性回归算法就是找到一条直线(一元线性回归)或一个平面(多元线性回归)能够根据输入的特征向量来更好的预测输出y的值。

为什么说是线性呢? 因为 y 与因变量 x 之间是线性关系,比如:

损失函数: MSE

线性回归如何训练?

上面已经提到, 线性回归的训练就是来确定 w 和 b 的值, 而对于多元线性回归 ,那么问题就变成了如何求解向量 的值。

再线性回归中, 我们可以通过两种方法来求取 , 一种是采用正规方程, 一种是采用梯度下降方法。 下面我来分别介绍这两种方法,并最后做出比较。

我们先给出我们的损失函数:

正规方程

我们使用 求导, 得到:


令上式为0,我们可以得到 的值为:

我们既可以直接通过矩阵运算来求出参数 的解。 而上式我们发现其涉及到了矩阵的可逆问题,如果 可逆,那么参数 的解唯一。 如果不可逆, 说明不满秩,我们此时就无法使用正规方程的方法来解。 根据线性代数的知识我们知道此时方程组的解不唯一, 此时选择哪一个解作为输出, 这由学习算法(如梯度下降算法)的归纳偏好来决定, 常见的做法是加入正则化项。

梯度下降法

我们可以采用批量梯度下降算法, 此时有:

两种方法的比较

参考: 正规方程

LWR - 局部加权回归

在线性回归中, 由于最终拟合出来的曲线是一条直线,其拟合能力极为有限(也可以解释为线性回归所求的是具有最小均方误差的无偏估计),因此很容易造成欠拟合现象, 而针对这个问题,有人提出了局部线性回归(LWR)。

局部加权回归其思想很简单: 我们对一个输入 w 进行预测时,赋予了 x 周围点不同的权值,距离 x 越近,权重越高。整个学习过程中误差将会取决于 x 周围的误差,而不是整体的误差,这也就是局部一词的由来。

在LWR中, 其损失函数为:


此时,使用回归方程求得:

而通常, 服从高斯分布, 在x周围指数型衰减;

其中, k 值越小,则靠近预测点的权重越大,而远离预测点的权重越小。所以参数k的值决定了权重的大小。 k越大权重的差距就越小,k越小权重的差距就很大,仅有局部的点参与进回归系数的求取,其他距离较远的权重都趋近于零。如果k去进入无穷大,所有的权重都趋近于1,W也就近似等于单位矩阵,局部加权线性回归变成标准的无偏差线性回归,会造成欠拟合的现象;当k很小的时候,距离较远的样本点无法参与回归参数的求取,会造成过拟合的现象。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注