如何将迭代加权最小二乘(IRLS)方法应用于LASSO模型?
我已经使用IRLS算法对逻辑回归进行了编程。我想对LASSO进行处罚,以便自动选择正确的功能。在每次迭代中,解决了以下问题: (XTWX)δβ^=XT(y−p)(XTWX)δβ^=XT(y−p)\mathbf{\left(X^TWX\right) \delta\hat\beta=X^T\left(y-p\right)} 令为非负实数。我没有按照《The Elements of》中的建议对拦截进行处罚。统计学习。同为零的系数。否则,我从右边减去一个术语:λλ\lambda XT(y−p)−λ×sign(β^)XT(y−p)−λ×sign(β^)\mathbf{X^T\left(y-p\right)-\lambda\times \mathrm{sign}\left(\hat\beta\right)} 但是,我不确定IRLS算法的修改。这是正确的方法吗? 编辑:尽管我对此并不自信,但这是我最终想出的解决方案之一。有趣的是,此解决方案与我现在对LASSO的了解相对应。实际上,每次迭代有两个步骤,而不仅仅是一个步骤: 第一步与之前相同:我们对该算法进行迭代(就像上面梯度的公式中),λ=0λ=0\lambda=0 第二步是新步骤:我们对第一步获得的向量每个分量(分量,它对应于截距)应用一个软阈值。这称为迭代软阈值算法。 ββ0β0\beta_0ββ\beta ∀i≥1,βi←sign(βi)×max(0,|βi|−λ)∀i≥1,βi←sign(βi)×max(0,|βi|−λ)\forall i \geq 1, \beta_{i}\leftarrow\mathrm{sign}\left(\beta_{i}\right)\times\max\left(0,\,\left|\beta_{i}\right|-\lambda\right)