我已经使用IRLS算法对逻辑回归进行了编程。我想对LASSO进行处罚,以便自动选择正确的功能。在每次迭代中,解决了以下问题:
令为非负实数。我没有按照《The Elements of》中的建议对拦截进行处罚。统计学习。同为零的系数。否则,我从右边减去一个术语:
但是,我不确定IRLS算法的修改。这是正确的方法吗?
编辑:尽管我对此并不自信,但这是我最终想出的解决方案之一。有趣的是,此解决方案与我现在对LASSO的了解相对应。实际上,每次迭代有两个步骤,而不仅仅是一个步骤:
- 第一步与之前相同:我们对该算法进行迭代(就像上面梯度的公式中),
- 第二步是新步骤:我们对第一步获得的向量每个分量(分量,它对应于截距)应用一个软阈值。这称为迭代软阈值算法。 β