为什么使用交叉验证不是 Lasso 回归的好选择?

机器算法验证 回归 机器学习 交叉验证 套索
2022-04-07 03:45:56

我观看了关于 Lasso 的讲座,在本模块结束时(00:40 到 01:25 之间),她解释了如何选择正则化参数 Lambda,听起来使用 (K-fold)Cross Validation 技术不是一个好的选择为套索。但是,我不明白为什么?有什么问题?

2个回答

所以,关键是当你定义一个最优值时λ你必须问什么是最优的?对于 LASSO,有两个可能的目标:

  1. 估计λpred, 的价值λ这会导致最好的预测误差

  2. 估计λms, 的价值λ 产生正确的模型(或至少是接近它的模型)。

正如 Fox 博士正确指出的那样,一般情况下并非如此λpred=λms,并且通常λpred<λms. 但是选择λ通过交叉验证使用预测误差,因此人们期望它估计λpred. 因此,如果您选择λ通过交叉验证,您可以选择一个λ这导致模型太大。如果您的目标是恢复真实模型,则应谨慎应用交叉验证。

每当我进行模拟研究时,我个人在撰写论文时会经常遇到这个问题,看看 lasso 进行变量选择。总是使用交叉验证来选择λ是一场灾难。我在应用 Lasso 时的运气要好得多(λ)选择模型,然后通过最小二乘拟合,然后对整个过程应用交叉验证来选择λ. 它仍然不理想,但它是一个很大的改进。

这并不是说交叉验证完全不适合模型选择,只是你需要仔细考虑什么λ你的方法是估计。例如,让我们考虑忽略套索,只考虑低维线性回归。在这种情况下,已知留一法交叉验证或多或少等同于 AIC 的某些变体,并且众所周知 AIC 与模型选择不一致。同样,BIC 通常与请假相关联V-out 交叉验证 whereV是数据大小的一些函数,众所周知,BIC 的变体是模型选择一致的。因此,有一些方法可以进行交叉验证,我们希望在模型选择中保持一致,但留一法则不然。

讲师的意思并不完全清楚。她说:

但在 LASSO 的情况下,我只想提一下,使用这些类型的程序、评估验证集上的错误或使用交叉验证,它选择了提供最佳预测准确性的 lambda。但最终往往会选择一个比进行模型选择的最佳值略小的 lambda 值。

在 LASSO 中可以通过两种方式使用交叉验证:选择一个最优的λ并评估预测误差。据我所知,将这些事情集中在一起并不是最佳实践。那是因为你选择了λ对于特定的交叉验证折叠来说是最佳的值,这自然会导致过度拟合,这有利于较小的值λ.

我认为更好的做法是应用嵌套 CV:因此对于特定的训练折叠,再次应用 CV 以找到最佳λ在该迭代中;或者分两批应用CV,先一组优化-CV找到一个最优的λ然后在另一批验证-CV 步骤中拟合 LASSO 模型以评估模型错误时修复该值。