我什么时候应该使用 lasso vs ridge?

机器算法验证 回归 套索 岭回归
2022-01-27 11:36:35

假设我想估计大量参数,并且我想惩罚其中一些参数,因为我认为它们与其他参数相比应该没有什么影响。我如何决定使用哪种惩罚方案?什么时候岭回归更合适?我什么时候应该使用套索?

3个回答

请记住,岭回归不能将系数归零;因此,您要么最终包含模型中的所有系数,要么一个都不包含。相比之下,LASSO 会自动进行参数收缩和变量选择。如果您的某些协变量高度相关,您可能希望查看弹性网络 [3] 而不是 LASSO。

我个人建议使用非负加洛特 (NNG) [1],因为它在估计和变量选择方面是一致的 [2]。与 LASSO 和岭回归不同,NNG 需要一个初始估计,然后向原点收缩。在原始论文中,Breiman 推荐了初始估计的最小二乘解决方案(但是,您可能希望从岭回归解决方案开始搜索并使用 GCV 之类的方法来选择惩罚参数)。

在可用软件方面,我在 MATLAB 中实现了原始 NNG(基于 Breiman 的原始 FORTRAN 代码)。您可以从以下位置下载它:

http://www.emakalic.org/blog/wp-content/uploads/2010/04/nngarotte.zip

顺便说一句,如果您更喜欢贝叶斯解决方案,请查看 [4,5]。

参考:

[1] Breiman, L. Better Subset Regression Using the Nonnegative Garrote Technometrics, 1995, 37, 373-384

[2] Yuan, M. & Lin, Y. On the non-negative garrotte estimator Journal of the Royal Statistical Society (Series B), 2007, 69, 143-161

[3] Zou, H. & Hastie, T. 通过弹性网进行正则化和变量选择 英国皇家统计学会期刊(B 系列), 2005, 67, 301-320

[4] Park, T. & Casella, G. 美国统计协会的贝叶斯套索杂志,2008, 103, 681-686

[5] 京,M.;吉尔,J。Ghosh, M. & Casella, G. 惩罚回归、标准误差和贝叶斯套索贝叶斯分析,2010 年,5,369-412

岭或套索是正则化线性回归的形式。正则化也可以解释为最大后验估计方法中的先验。在这种解释下,岭和套索对它们推断出的用于关联输入和输出数据的线性变换类别做出不同的假设。在岭中,线性变换的系数是正态分布的,而在套索中,它们是拉普拉斯分布的。在套索中,这使得系数更容易为零,因此更容易消除一些对输出没有贡献的输入变量。

还有一些实际的考虑。山脊更容易实现并且计算速度更快,这可能取决于您拥有的数据类型。

如果您都实现了,请使用数据的子集来查找 ridge 和 lasso,并比较它们在遗漏数据上的工作情况。这些错误应该让您知道使用哪个。

通常,当您有许多中小型效果时,您应该使用 ridge。如果您只有几个具有中/大效果的变量,请使用套索。 哈斯蒂、蒂布希拉尼、弗里德曼