LASSO 在模型的交叉验证预测误差方面优于前向选择/后向消除

机器算法验证 交叉验证 模型选择 套索 逐步回归
2022-02-12 20:13:30

我使用原始完整模型从原始完整模型中获得了三个简化模型

  • 前向选择
  • 向后消除
  • L1 惩罚技术 (LASSO)

对于使用前向选择/后向消除获得的模型,我使用 in 中可用的CVlm包获得了预测误差的交叉验证估计对于通过 LASSO 选择的模型,我使用了.DAAGRcv.glm

LASSO 的预测误差小于其他的预测误差。因此,通过 LASSO 获得的模型在预测能力和可变性方面似乎更好。这是经常发生的普遍现象还是特定问题?如果这是一种普遍现象,那么理论上的推理是什么?

2个回答

LASSO 和前向/后向模型选择都有优点和局限性。无法提出全面的建议。总是可以探索模拟来解决这个问题。

两者都可以从维数的意义上理解:指p为模型参数的个数,n为观测值的个数。如果您能够使用反向模型选择来拟合模型,那么您可能没有pn在这种情况下,“最佳拟合”模型是使用所有参数的模型……在内部验证时!这只是过拟合的问题。

使用拆分样本交叉验证 (CV) 进行模型评估来纠正过度拟合。既然你没有描述这一点,我假设你没有这样做。与逐步模型选择不同,LASSO 使用调整参数来惩罚模型中的参数数量。您可以固定调整参数,或使用复杂的迭代过程来选择此值。默认情况下,LASSO 执行后者。这是用 CV 完成的,以便最小化预测的 MSE。我不知道任何使用这种复杂技术的逐步模型选择的实现,即使将 BIC 作为标准也会受到内部验证偏差的影响。根据我的说法,这会自动使 LASSO 对“开箱即用”的逐步模型选择产生影响。

最后,逐步模型选择可以有不同的标准来包含/排除不同的回归器。如果您使用特定模型参数的 Wald 检验或结果模型 R^2 的 p 值,您将不会做得很好,主要是因为内部验证偏差(同样,可以使用 CV 来纠正)。我发现这仍然是此类模型倾向于实施的方式令人惊讶。AIC 或 BIC 是更好的模型选择标准。

每种方法都有很多问题。逐步模型选择的问题更容易理解,但比 LASSO 的问题要糟糕得多。我看到你的问题的主要问题是你正在使用特征选择工具来评估预测它们是不同的任务。LASSO 更适合特征选择或稀疏模型选择。岭回归可能会提供更好的预测,因为它使用所有变量。

LASSO 的强大之处在于它可以估计其中的模型,可以是向前(但不是向后)逐步回归的情况。在这两种情况下,只有当有少数非常强大的预测器时,这些模型才能有效地进行预测。如果许多弱预测器能更好地预测结果,那么岭回归或 bagging/boosting 将远远优于向逐步回归和 LASSO。LASSO 比前向逐步回归快得多。pn

特征选择和预测之间显然有很多重叠,但我从来没有告诉过你扳手作为锤子的作用。一般来说,对于具有稀疏数量的模型系数和的预测,我更喜欢 LASSO 而不是前向逐步模型选择。pn

您想根据某些标准选择预测变量的子集。可能是样本内 AIC 或调整后的 R^2,或交叉验证,都没有关系。

您可以测试每个预测变量子集组合并选择最佳子集。然而

  • 由于参数的组合爆炸,非常耗时。
  • 如果您的参数多于观察值,则在您测试所有提供解决方案的预测变量组合的意义上有效

您可以使用向前逐步选择

  • 耗时较少,但可能无法获得绝对最佳组合,尤其是。当预测变量相关时(可能会选择一个预测变量并且在添加 2 个其他预测变量会显示出改善时无法获得进一步的改善)
  • 即使您的参数多于观察值,也可以工作

您可以使用向后消除

  • 如果您的参数多于观察值,则不起作用,没有一个好的起点(理论上您可以从所有有效的起点开始,向后工作,选择最好的,但这不是向后消除的通常含义)
  • 像逐步向前一样,比所有子集耗时更少,但可能无法获得绝对最佳组合,尤其是。当预测变量相关时

你可以使用 LASSO

  • 即使您的参数多于观察值,也可以工作
  • 当您有许多参数和子集的组合爆炸时,CPU 效率高
  • 添加正则化

至于您为什么 LASSO 在您的 CV 数据上表现更好的问题

  • 一种可能性是上述路径依赖性——LASSO 可能会找到更好的子集。也许它很幸运,也许 LASSO 通常/有时会得到更好的子集,我不确定。也许有关于这个主题的文献。
  • 另一种(更可能的)可能性是 LASSO 正则化可防止过度拟合,因此 LASSO 在 CV/样本外表现更好。

最重要的是,LASSO 为您提供正则化和有效的子集选择,尤其是当您有很多预测变量时。

顺便说一句,您可以做 LASSO 并使用 CV(最常见)选择您的模型,但也可以使用 AIC 或其他一些标准。使用 L1 正则化和无约束运行您的模型,然后逐渐收紧约束,直到 AIC 达到最小值或 CV 误差或您选择的标准。http://scikit-learn.org/stable/auto_examples/linear_model/plot_lasso_model_selection.html