我观看了关于 Lasso 的讲座,在本模块结束时(00:40 到 01:25 之间),她解释了如何选择正则化参数 Lambda,听起来使用 (K-fold)Cross Validation 技术不是一个好的选择为套索。但是,我不明白为什么?有什么问题?
为什么使用交叉验证不是 Lasso 回归的好选择?
所以,关键是当你定义一个最优值时你必须问什么是最优的?对于 LASSO,有两个可能的目标:
估计, 的价值这会导致最好的预测误差。
估计, 的价值 产生正确的模型(或至少是接近它的模型)。
正如 Fox 博士正确指出的那样,一般情况下并非如此,并且通常. 但是选择通过交叉验证使用预测误差,因此人们期望它估计. 因此,如果您选择通过交叉验证,您可以选择一个这导致模型太大。如果您的目标是恢复真实模型,则应谨慎应用交叉验证。
每当我进行模拟研究时,我个人在撰写论文时会经常遇到这个问题,看看 lasso 进行变量选择。总是使用交叉验证来选择是一场灾难。我在应用 Lasso 时的运气要好得多选择模型,然后通过最小二乘拟合,然后对整个过程应用交叉验证来选择. 它仍然不理想,但它是一个很大的改进。
这并不是说交叉验证完全不适合模型选择,只是你需要仔细考虑什么你的方法是估计。例如,让我们考虑忽略套索,只考虑低维线性回归。在这种情况下,已知留一法交叉验证或多或少等同于 AIC 的某些变体,并且众所周知 AIC 与模型选择不一致。同样,BIC 通常与请假相关联-out 交叉验证 where是数据大小的一些函数,众所周知,BIC 的变体是模型选择一致的。因此,有一些方法可以进行交叉验证,我们希望在模型选择中保持一致,但留一法则不然。
讲师的意思并不完全清楚。她说:
但在 LASSO 的情况下,我只想提一下,使用这些类型的程序、评估验证集上的错误或使用交叉验证,它选择了提供最佳预测准确性的 lambda。但最终往往会选择一个比进行模型选择的最佳值略小的 lambda 值。
在 LASSO 中可以通过两种方式使用交叉验证:选择一个最优的并评估预测误差。据我所知,将这些事情集中在一起并不是最佳实践。那是因为你选择了对于特定的交叉验证折叠来说是最佳的值,这自然会导致过度拟合,这有利于较小的值.
我认为更好的做法是应用嵌套 CV:因此对于特定的训练折叠,再次应用 CV 以找到最佳在该迭代中;或者分两批应用CV,先一组优化-CV找到一个最优的然后在另一批验证-CV 步骤中拟合 LASSO 模型以评估模型错误时修复该值。