机器学习:线性回归、局部加权线性回归、岭回归、前向逐步回归

所谓回归,简单来讲就是根据现有数据拟合出函数,然后根据该函数进行一些预测工作。分类的输出是标称型,而回归的输出为数值型。接下来介绍几种常见的全局型回归方法

一. 线性回归(Linear Regression)

对于二维数据而言,线性回归就是找出一个一次函数去拟合数据,使得平方误差最小。是的,这里的损失函数是平方损失。平方误差可以写做:

im=(yixTiw)2

矩阵写法为:

(yXw)T(yXw)

w 求导并令其等于0,于是解出 w 如下:

w=(XTX)1XTy

w 即为最优解,这就是“普通最小二乘法”,当然在应用此算法之前需要的判断 XTX 的可逆性。如果不可逆,那么此办法就不可用,应该用岭回归算法,具体在第三部分讨论。

二. 局部加权线性回归(Locally Weighted Linear Regression)

我们知道并不是所有数据都能用线性回归来拟合,有的时候数据有转折或是其他规律。于是有了局部加权线性回归,该方法更加关注将要预测的数据周围的点,也就是通过高斯核给预测点周围的数据赋予权值,选择合适的高斯系数能使结果更好,当然这种算法的缺点是:对于每一个要预测的点,都要重新依据整个数据集计算一个线性回归模型出来,使得算法代价极高。

该算法的详细介绍有一篇blog写得很好————【机器学习】局部加权线性回归

三. 岭回归(Ridge Regression)

岭回归是一种常见的shrinkage coefficient(缩减系数)方法,还有其他缩减方法,如lasso(效果很好但计算复杂)、LAR、PCA。所谓shrinkage,就是通过一些手段来减少不重要的参数。

岭回归是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于普通最小二乘法。

岭回归具有什么作用呢,我们知道在普通最小二乘法里有一个基本要求是 XTX 可逆,岭回归就是对 XTX 加上了一个 λI 使其可逆,此时回归系数的计算公式为:

w=(XTX+λI)1XTy

λ 趋于0时,回归系数 w 的值和普通线性回归得到的一致,当 λ 趋于无穷大时,回归系数接近于0,可以通过交叉验证的方法选择出使得测试结果最好的 λ

注意,在加入 λ 有一个约束条件如下:

k=1nw2kλ

限制 w 的范围,达到稳定的效果,关于稳定性的解释这里有一个例子。在lasso算法里,约束条件变成了绝对值,计算程度比较复杂。

四. 前向逐步回归(Foward Stagewise Regression)

前向逐步回归算法可以得到和lasso差不多的效果,但更简单,是一种贪心算法。一开始,所有的权重都设置为1,然后每一步所做的决策是对某个权重增加或减少一个很小的值,算法伪代码如下:

数据标准化,使其分布满足0均值和单位方差 
在每轮迭代过程中:
    设置当前最小误差lowestError为正无穷
    对每个特征: 
        增大或缩小: 
            改变一个系数得到一个新的w
            计算新W下的误差 
            如果误差Error小于当前最小误差lowestError:
                设置Wbest等于当前的W
        将1^设置为新的Wbest

五. 参考

【机器学习】局部加权线性回归

《机器学习实战》

你可能感兴趣的:(机器学习)