LARS 的套索修改

机器算法验证 套索
2022-03-20 10:33:08

我试图了解如何修改 Lars 算法以生成 Lasso。虽然我确实了解 LARS,但我无法从 Tibshirani 等人的论文中看到 Lasso 修改。特别是我不明白为什么非零坐标的符号必须与当前相关性的符号一致的符号条件。有人可以帮我解决这个问题。我想我正在寻找对原始 L-1 范数问题(即 Lasso)使用 KKT 条件的数学证明。非常感谢!

2个回答

X(尺寸n×p) 表示一组标准化输入,y(尺寸n×1) 集中响应,β(尺寸p×1) 回归权重和λ>0一种l1-范数惩罚系数。

LASSO 问题然后写

β=argminβ L(β,λ)L(β,λ)=yXβ22+λβ1

的所有值求解此问题产生所谓的 LASSO 正则化路径λ>0β(λ)

对于惩罚系数的固定值(即活动预测变量的固定数量 = LARS 算法的固定步长),可以证明满足(只需写出 KKT 平稳性条件,如下所示回答λβ

λ=2 sign(βa)XaT(yXβ),   aA

表示一组活跃的预测器。A

因为必须是正的(它是一个惩罚系数),很明显(任何非零的权重,因此是主动预测器)的符号应该与即与当前回归残差的相关性。λβaXaT(yXβ)=XaTr

@Mr._White 对 LARS 和 Lasso 之间的主要区别提供了非常直观的解释;我要补充的唯一一点是,套索(有点)像一种向后选择方法,只要存在一个术语,就可以在每个步骤中剔除一个术语,因为这些(“标准化”超过)相关性存在。LARS 将所有内容都保存在那里——基本上以所有可能的顺序执行套索。这确实意味着在 lasso 中,每次迭代都取决于哪些项已被删除。 X×X

Effron 的实现说明了差异很大:源 pkg 中的 lars.R 用于 lars矩阵和从第 180 行开始的更新步骤的项的删除。我可以想象由空间引起的一些奇怪情况,其中术语不平衡(非常相关但与其他项不相关,但与其他项不相关,等等)选择顺序可能会非常有偏差。X×Xζζmin<ζcurrentAx1x2x2x3