相关变量的套索或岭

mce*_*aya 2 regression machine-learning lasso-regression

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

ign*_*elo 5

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

简要回答您的问题:

有一些正则化总是好的,所以只要有可能,避免“普通”线性回归。 Ridge可以被认为是一个很好的默认正则化,但是,如果您认为在您的特征集中只有少数特征真正有用,您应该考虑LASSO 正则化或弹性网络(解释如下)。这两种方法倾向于将“无用”特征权重减少到

在像您这样的情况下,如果您可能有很多相关特征,您可能倾向于运行这些“归零”正则化方法之一。这两个弹力网套索可以使用,但是,弹力网往往优于LASSO作为套索可能不稳定,当你有一个功能集,是不是在你的训练集实例的数量较大或时有几个功能是非常强烈的相关性(就像你的情况一样)。

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

方程 1:弹性网络方程

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

最后,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)
Run Code Online (Sandbox Code Playgroud)

如果您正在研究与岭正则化相比LASSO 正则化如何工作的更多数学解释,我建议您查看Aurelien Geron 的书:机器学习的动手或斯坦福关于正则化的资源(与 MATLAB 包明显相似):https ://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html

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

比较 LASSO 和 Ridge 正则化:在 LASSO 上,我们可以观察到批量梯度下降路径在接近结束时穿过排水沟有一点反弹。 这主要是因为斜率在 O_2 = 0 时突然变化。为了收敛到全局最小值,应该逐渐降低学习率(*根据 Hands-on-ML 指南生成的数字*)

在 LASSO 上,我们可以观察到批量梯度下降路径在最后的排水沟中有一点反弹。这主要是由于斜率在 O_2 = 0 处突然变化。学习率应该逐渐降低以收敛到全局最小值(根据 Hands-on-ML 指南生成的图

希望有帮助!