相关变量的套索或岭

时间:2017-03-20 12:56:26

标签: machine-learning regression lasso

我试图理解一句话“在存在相关变量的情况下,岭回归可能是首选。” 假设我们有变量a1,a2,b1,c2,并且2a'是相关的。 如果我们使用Lasso它可以消除其中一个.Sasso和Ridge都会缩小。 所以听起来Lasso在这些条件下会更好。但引用说岭更好。这是错误的引用还是我遗漏了什么?(也许是想太简单了)

3 个答案:

答案 0 :(得分:3)

此问题的答案很大程度上取决于您正在处理的 类型的数据集

简要回答您的问题:

有一些正则化总是好的,所以尽可能避免“普通”线性回归。 Ridge 可以被认为是一个很好的默认正则化,但是,如果你认为你的功能集只有少数功能实际上有用,你应该考虑 LASSO正规化或者Elastic Net(以下解释)。这两种方法倾向于将“无用”特征权重减少到

在像你这样的情况下,你可能会有很多相关的功能,你可能倾向于使用这些“归零”正则化方法之一。可以使用 Elastic Net LASSO ,但弹性网通常优先于 LASSO 如果您的功能集大于训练集中的实例数或多个功能非常强相关,则LASSO 可能会出现异常行为(如在你的情况下)。

弹性网正则化可以理解为混合方法,它混合了L2和L1规范的惩罚。具体而言,弹性网络回归最小化了成本函数:

Equation1: Elastic Net Equation

混合比 r超参数介于0和1之间,并控制使用多少L2或L1惩罚( 0是脊,1是套索)。< / p>

最后,Python Scikit-Learn的库使ElasticNet易于实现。例如:

from sklearn.linear_model import ElasticNet
elastic_net= ElasticNet(alpha= 0.1, l1_ratio= 0.5) # l1_ratio is the mix r
elastic_net.fit(X,y)

如果您正在研究 LASSO正规化岭正规化相比如何工作的更多数学解释,我建议您查看 Aurelien Geron的书:掌握机器学习或斯坦福大学在正规化方面的资源(与MATLAB软件包明确相似):https://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html

这是一个python生成的图,比较了两个惩罚和成本函数:

Comparing LASSO and Ridge Regularization: On the LASSO we can observe that the Batch Gradient Descent path has a bit of bounce across the gutter towards the end. This is mostly due to the fact that the slope changes abruptly at O_2 = 0. The learning rate should be gradually reduced in order to converge to the global minimum (*figure produced following Hands-on-ML guide*)

在LASSO上,我们可以观察到批量梯度下降路径在整个排水沟中有一点反弹。这主要是由于斜率在O_2 = 0时突然变化这一事实。学习率应逐渐降低,以便收敛到全局最小值(数字按照动手指南制作 < / p>

希望有所帮助!

答案 1 :(得分:2)

一般来说,没有一种优选的方法。 LASSO可能会将某些系数驱动为0,而Ridge则不会缩小它们的值。

此外,Ridge的计算速度可能更快,因为最小化L2范数比L1范数(LASSO)更容易。

如果可能,为什么不实施这两种方法并执行交叉验证以确定哪种方法能产生更好的结果?

最后,我还建议调查Elastic Net这是LASSO和Ri​​dge的混合体。

答案 2 :(得分:0)

通常,人们可能会希望套索 在预测变量相对较少的环境中表现更好 具有实质性系数,其余预测变量具有系数 很小或等于零。岭回归将表现更好 当响应是许多预测变量的函数时,所有预测变量的系数为 大小大致相等。但是,与 真实数据集的响应从来都不是先验的。诸如 可以使用交叉验证来确定哪种方法更好 在特定的数据集上。

-ISL