弹性网络回归的交叉验证:平方误差与测试集的相关性

机器算法验证 回归 交叉验证 模型选择 正则化 弹性网
2022-04-12 04:06:38

考虑弹性网络回归,glmnet损失函数我有一个带有n\ll p的数据集 (分别为 44 和 3000),并且我使用重复的 11 折交叉验证来选择最佳正则化参数alphalambda通常我会使用平方误差作为测试集的性能指标,例如这个 R-squared-like 指标:L_\text{test} = 1-\frac{\lVert y_\text{test} - \hat\beta_0 - X_\text{test}\hat\beta\rVert^2}{\lVert y_\text{test} - \hat\beta_0\rVert^2},

L=12nyβ0Xβ2+λ(αβ1+(1α)β22/2).
npαλ
Ltest=1ytestβ^0Xtestβ^2ytestβ^02,
但这次我也尝试使用相关度量(请注意,对于非正则化 OLS 回归,最小化平方误差损失等同于最大化相关性):
Ltest=corr(ytest,Xtestβ^).

很明显,这两个性能指标并不完全等价,但奇怪的是,它们非常不同意:

弹性网络交叉验证

特别注意在小 alpha 处发生的情况,例如α=.2(绿线):当测试集R2与其最大值相比大幅下降时,实现了最大测试集相关性。一般来说,对于任何给定的α,相关性似乎在大于平方误差的λ

为什么会发生以及如何处理?应该首选哪个标准?有人遇到过这种效果吗?

1个回答

我想我知道这里发生了什么。

请注意,相关性的值不取决于的长度。因此,如果测试相关性在测试 R 平方下降时不断增加,则可能表明不是最优的,并且通过标量因子向上或向下β^β^β^

意识到这一点后,我想起了文献中有多种说法,即弹性网甚至套索本身会“过度收缩”系数。对于套索,有一个旨在修正这种偏见的“放松套索”程序:请参阅“双套索”或两次执行套索的优势?. 放大 一个常数因子,请参阅为什么 glmnet 使用来自 Zou & Hastie 原始论文的“朴素”弹性网络?. 这种缩放不会改变相关值,但会影响 R 平方。β^

当我应用 Zou & Hastie 启发式缩放我得到以下结果:

β^=(1+λ(1α))β^,

在此处输入图像描述

这里的实线与我的问题中的图中相同,而左侧子图中的虚线使用重新缩放的 beta。现在,两个指标都通过大约相同的值最大化。αλ

魔法!