最小角回归算法(LARS)

最小角回归算法(Least Angle Regression,LAR)是一种针对于线性回归问题,快速进行特征选择和回归系数计算的迭代算法,其被广泛推广用于求解线性回归以及Lasso回归问题。

最小角回归算法的核心思想为:将回归目标向量依次分解为若干组特征向量的线性组合,最终使得与所有特征均线性无关的残差向量最小。

可见,最小角回归算法的关键在于选择正确的特征向量分解顺序和分解系数。为了更好的表示最小角回归的分解过程,本文以线性回归问题为例,分别介绍相关的前向选择算法、前向梯度算法和最小角回归算法。

会方便描述,本文的算法几何展示均简化为在二维平面内的回归问题(忽略偏置项):y=θ1x1+θ2x2y=\theta_1x_1+\theta_2x_2其中x1x2x_1、x_2为两组特征向量,θ1θ2\theta_1、\theta_2为预求的回归系数。同时定义残差向量y(i)y^{(i)}为:第ii次特征向量线性组合后,与目标向量间的向量差。因此初始残差y(0)y^{(0)}即为目标向量yy
最小角回归算法(LARS)

一、前向选择(Forward Selection)算法

前向选择算法,是一种贪婪的对目标向量进行特征分解的算法。

其计算流程如下:

(1)选择一个与目标向量y(0)y^{(0)}(初始残差向量)相关度最高(如余弦夹角最小)的特征向量xix_i方向,将目标向量在该方向xix_i上进行投影,得到第二轮的目标残差向量y(0)θ1xiy^{(0)}-\theta_1x_i

(2)从尚未被使用过的特征向量中,选择与当前目标残差向量相关度最高的特征向量方向进行投影,将目标向量减去前面各轮中的投影向量,得到下一轮的目标残差方向y(0)iθixiy^{(0)}-\sum\limits_i\theta_ix_i

(3)重复步骤(2)直至终止条件。终止条件可为:a)无目标残差;b)无多余特征向量;c)残差向量足够小。

将上述计算流程应用在二维平面内,可见下图。其中黑色线为特征向量;红色线为各轮的目标残差向量;绿色线为各轮的投影值;上标为第ii轮。
最小角回归算法(LARS)
前向选择算法简单粗暴,各特征向量最多使用一次,每轮的目标残差方向均与上一轮采用的特征向量方向正交。

但因为其忽略了各特征向量间可能存在的线性关系,仅作盲目的依次投影,因此计算较为粗糙,只能给出局部近似解。

二、前向梯度(Forward Stagewise)算法

前向梯度算法与前向选择算法的基本思想一致,但并没有盲目进行直接投影,而是采用了小步试错的方法,采用更谨慎细致的向量选择保证每一小步分解的合理性。

其计算流程如下:

(1)选择一个与本轮目标残差向量y(i)y^{(i)}相关度最高(如余弦夹角最小)的特征向量xix_i方向,在该方向xix_i移动一小步ϵxi\epsilon x_i,得到下一轮的目标残差向量y(0)iϵxiy^{(0)}-\sum\limits_i\epsilon x_i

(2)以全量特征向量为候选集,重复步骤(1)直至终止条件。终止条件可为:a)无目标残差;b)残差向量足够小。

在前向梯度算法中,每轮的候选特征向量均为全量的特征向量,因此每个特征向量可能会被多次使用。当ϵ\epsilon值很小时,可以得到精确的最优解,但此时计算量很大。

将上述计算流程应用在二维平面内,可见下图。
最小角回归算法(LARS)

三、最小角回归算法

最小角回归算法是前向选择算法的快速性与前向梯度算法的准确性两者间的折中。

其计算流程如下:

(1)选择一个与初始目标残差向量y(0)y^{(0)}相关度最高(如余弦夹角最小)的特征向量xix_i方向,在该方向xix_i上移动某个步长θi\theta_i,使得此时的残差向量y(0)θixiy^{(0)}-\theta_i x_i与特征向量xix_i以及另一个相关度最高的特征向量xjx_j的相关度相等(或者说,使得y(0)θixiy^{(0)}-\theta_i x_i恰好位于xix_ixjx_j的角平分线上);

(2)以上述角平分线方向(亦是当前残差向量方向)为新的特征向量搜索方向进行移动某个步长θi\theta_i,使得残差向量y(0)iθixiy^{(0)}-\sum\limits_i\theta_i x_i与先前用到的各特征向量间的相关度与剩余特征集合中相关度最高的特征向量相关度相等(或者说,使得y(0)iθixiy^{(0)}-\sum\limits_i\theta_i x_i位于上述各特征向量的空间角平方线上);

(3)重复步骤(2)直至终止条件。终止条件可为:终止条件可为:a)无目标残差;b)无多余特征向量;c)残差向量足够小。

将上述计算流程应用在二维平面内,可见下图。
最小角回归算法(LARS)
在最小角回归算法中,各特征向量最多使用一次,其通过准确得到每步最优的分解长度保证了计算的准确性和速度。其主要优点包括:

1)特别适合于特征维度n 远高于样本数m的情况;

2)算法的最坏计算复杂度和最小二乘法类似,但是其计算速度几乎和前向选择算法一样;

3)可以产生分段线性结果的完整路径,这在模型的交叉验证中极为有用。

但注意到最小角回归的迭代方向是基于目标残差方向,所以其很容易受到噪声的影响