常用的线性回归模型小结

先明确几个概念:方差指的是模型之间的差异,偏差指的是模型预测值和数据之间的差异。

最小二乘法线性回归(Oridinary Least Squares, OLS)

线性回归拟合具有系数w =(w_1,…,w_p)的线性模型,最小化 通过预测模型得到的预测值和真实值之间的残差,其数学表达式如下:

minXWY22

线性回归模型也是最基本的模型,得到的结果在二维空间上就是一条直线,在更高维空间上,就是一个超平面。

岭回归(Ridge regression)

岭回归通过对系数的大小施加惩罚来解决普通最小二乘的一些问题。 即在普通线性回归的基础上叠加上L2惩罚项,其数学表达如下:

minXWY22+αW22

这里, α0 是控制收缩量的复杂度参数:  alpha 值越大,特真系数收缩量越大,因此系数变得对共线性变得更加鲁棒。
需要注意的是L2正则项倾向于让特征的系数不过大,即得到的特征权重比较平均

套索回归(Lasso)

Lasso是估计稀疏系数的线性模型。 它在一些情况下是有用的,因为它倾向于使用具有较少参数值的解决方案,有效地减少给定解决方案所依赖的变量的数量。 本质上,Lasso就是在普通的线性回归基础上加上了L1正则项为此,Lasso及其变体是压缩感测领域的基础。 在某些条件下,它可以恢复精确的非零权重集。其数学表达如下:

min12nsamplesXWY22+αW1

图同样的 α 也是控制收缩量复杂的参数,需要注意的L1正则项更加倾向于得到特征的稀疏表达,即可能某些特征的权重被惩罚至0。

Elastic Net

ElasticNet是一种带有L1正则项和L2正则项的线性模型。 这种组合允许学习一个稀疏模型,其中很少的权重是非零的,如Lasso,同时仍然保持Ridge的正则化属性。 我们使用l1_ratio参数控制L1和L2的凸组合。
当有多个相互关联的特征时,ElasticNet是有用的。Lasso有可能随机选择其中某一个特征,而ElasticNet会选择所有的特征。其数学表达如下:

min12nsamplesXWY22+αρW1+α(1ρ)2W22

惩罚回归问题的ElasticNet形式是使用一个可调节的岭回归以及Lasso回归的混合,ElasticNet映入一个而外参数 ρ 来控制岭惩罚和Lasso惩罚的比例。 ρ 表示只使用Lasso惩罚(L1正则),不使用岭惩罚。在使用ElasticNet形式求解线性模型的系数前, α ρ 的必须提前确定。

前向逐步回归

前向逐步回归算法可以得到与lasso差不多的效果,但更加简单,它属于一种贪心算法。即每一步都尽可能的减小误差。每一步的决策是对某个权重增加或减小一个很小的值。其算法伪代码如下:

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

逐步线性回归的主要优点在于它可以帮助人们理解现有的模型并作出改进。当构建了一个模型之后,可以运行该算法找出重要的特征,这样就可以及时停止对那些不重要特征的收集。

最小角度回归(Least Angle Regression, LARS)

最小二乘回归(LARS)针对高维数据的回归算法。
LARS的优点是:

  • 在p >> n的情况下(即,当维数显着大于点数时)的数值效率较高,
  • 它在计算上与正向选择一样快,并且具有与普通最小二乘法相同的复杂度。
  • 它产生一个完整的分段线性解决路径,这在交叉验证或类似的调试模型尝试中很有用。 如果两个变量与响应几乎相等,那么它们的系数应该以大致相同的速率增加。因此,算法的行为就像直觉所期望的那样,并且也更稳定。
  • 它很容易被修改为其他估计器产生解决方案,如Lasso。

LARS方法的缺点包括:

  • 因为LARS是基于对残差进行迭代重新设计的,所以它似乎对噪声的影响特别敏感。

LARS算法与前向逐步回归算法十分相似,LARS与前向逐步回归的主要差异是LARS在引入新属性是只是部分引入,引入数学过程并非不可逆。算法过程如下:

将所有的特征权重初始化为0
在每一步中,决定哪个属性与残差有最大的关联:
    如果关联为正,小幅度增加关联系数
    如果关联为负,小幅度减少关联系数

局部加权线性回归(Locally Weighted Linear Regression, LWLR)

给待预测点附近的每个点赋予一定的权重,LWLR使用核来对附近的点赋予更高的权重,最常用的就是高斯核。
w(i,i)=|xix|2k2
集局部加权线性回归的一个问题就是增加了计算量。因为对每个点的预测都必须使用整个数据集。

猜你喜欢

转载自blog.csdn.net/john_xyz/article/details/70555478