为什么当特征相关时 Lasso 或 ElasticNet 比 Ridge 表现更好

机器算法验证 回归 套索 正则化 岭回归 弹性网
2022-01-26 11:43:57

我有一组 150 个特征,其中许多特征彼此高度相关。我的目标是预测一个离散变量的值,其范围是1-8我的样本量是550,我正在使用10 折交叉验证。

AFAIK,在正则化方法(Lasso、ElasticNet 和 Ridge)中,Ridge 对特征之间的相关性更加严格。这就是为什么我期望通过 Ridge,我应该获得更准确的预测。然而,我的结果显示 Lasso 或 Elastic 的平均绝对误差约为0.61,而岭回归的该分数为0.97我想知道对此有何解释。这是因为我有很多特征,而 Lasso 表现更好是因为它进行了一种特征选择,摆脱了冗余特征?

2个回答

假设您有两个高度相关的预测变量,并假设两者都是居中和缩放的(意味着零,方差一)。那么参数向量上的岭惩罚是而套索惩罚项是现在,由于模型被认为是高度共线性的,因此时或多或少可以相互替代,因此我们只需在部分的许多线性组合将与预测变量非常相似,例如x,zβ12+β22β1+β2xzYx,zxz0.2x+0.8z,0.3x+0.7z0.5x+0.5z将与预测器一样好。现在看这三个例子,三种情况下的lasso惩罚都是相等的,都是1,而岭惩罚不同,分别是0.68、0.58、0.5,所以岭惩罚会偏好共线变量的等权重而lasso惩罚将无法选择。这是 ridge(或更一般地说,弹性网络,它是 lasso 和 ridge 惩罚的线性组合)将更好地与共线性预测变量一起使用的原因之一:当数据几乎没有理由在共线性预测变量的不同线性组合之间进行选择时,lasso 只会“漫游”,而 ridge 倾向于选择相等的权重。最后一个可能是与未来数据一起使用的更好猜测!而且,如果目前的数据是这样,那么在交叉验证中可能会显示出使用岭的更好结果。

我们可以用贝叶斯的方式来看待这一点:Ridge 和 lasso 暗示了不同的先验信息,而 ridge 所暗示的先验信息在这种情况下往往更合理。(我在这里或多或少地从 Trevor Hastie、Robert Tibshirani 和 Martin Wainwright 的“Statistical Learning with Sparsity The Lasso and Generalizations”一书中学到了这个解释,但此时我无法找到直接引用)。


但是OP似乎有一个不同的问题:

然而,我的结果显示 Lasso 或 Elastic 的平均绝对误差约为0.61 ,而岭回归的该分数为0.97

现在,lasso 也在有效地进行变量选择,它可以将一些系数设置为零。Ridge 无法做到这一点(除非概率为零。)因此,对于 OP 数据,在共线性变量中,一些是有效的,而另一些则根本没有作用(并且共线性程度足够低以至于可以检测到) .) 请参阅我应该何时使用套索与山脊? 这是讨论的地方。详细分析需要比问题中提供的更多信息。

lasso 和 ridge 之间最重要的区别是 lasso 自然地进行选择,特别是在协变量非常相关的情况下。如果没有看到拟合的系数,就不可能真正确定,但很容易认为,在这些相关的特征中,很多都是无用的。