避免回归中的过度拟合:正则化的替代方案

机器算法验证 回归 正则化 过拟合
2022-02-06 05:29:36

回归中的正则化(线性、逻辑...)是减少过拟合最流行的方法。

当目标是预测准确性(不是解释)时,是否有任何好的替代正则化的方法,特别适用于大数据集(mi/数十亿的观察和数百万的特征)?

4个回答

正则化的两种替代方案:

  1. 有很多很多的观察
  2. 使用更简单的模型

Geoff Hinton(反向传播的共同发明者)曾经讲过一个工程师的故事,他告诉他(重述):“Geoff,我们的深层网络不需要 dropout,因为我们有这么多数据。” 他的回答是,“好吧,那么你应该建立更深的网络,直到你过度拟合,然后使用 dropout。” 抛开好建议不谈,只要有足够的数据,即使使用深度网络,您显然也可以避免正则化。

通过固定数量的观察,您还可以选择更简单的模型。您可能不需要正则化来估计简单线性回归中的截距、斜率和误差方差。

与您的问题没有直接关系的两个要点:

  • 首先,即使目标是准确性而不是解释,在许多情况下仍然需要正则化,因为它将确保真实测试/生产数据集的“高精度”,而不是用于建模的数据。

  • 其次,如果有十亿行和百万列,则可能不需要正则化。这是因为数据量巨大,而且很多计算模型“能力有限”,即几乎不可能过拟合。这就是为什么某些深度神经网络具有数十亿个参数的原因。


现在,关于你的问题。正如 Ben 和 Andrey 所提到的,有一些选项可以替代正则化。我想添加更多示例。

  • 使用更简单的模型(例如,减少神经网络中隐藏单元的数量。在 SVM 中使用低阶多项式内核。减少高斯混合中的高斯数量等)

  • 尽早停止优化。(例如,减少神经网络训练中的epoch,减少优化中的迭代次数(CG、BFGS等)

  • 许多模型的平均值(例如,随机森林等)

避免过度拟合的一些额外可能性

  • 降维

    您可以使用诸如主成分分析 (PCA) 之类的算法来获得较低维度的特征子空间。PCA 的想法是您的维子空间很好地近似。ml<<m

  • 特征选择(也是降维)

    您可以执行一轮特征选择(例如,使用 LASSO)以获得较低维度的特征空间。如果某些大型但未知的特征子集不相关,则使用 LASSO 进行特征选择之类的方法可能很有用。

  • 使用不太容易过度拟合的算法,例如随机森林。(取决于设置、特征数量等......,这些可能比普通最小二乘法的计算成本更高。)

    其他一些答案也提到了提升和装袋技术/算法的优势。

  • 贝叶斯方法

    在系数向量上添加先验以减少过度拟合。这在概念上与正则化有关:例如。岭回归是最大后验估计的特例。

两个想法:

  1. 我支持 Ben Ogorek提出的“使用更简单的模型”策略

    我研究具有小整数系数的非常稀疏的线性分类模型(例如,整数系数在 -5 和 5 之间的最大 5 个变量)。这些模型在准确性和更复杂的性能指标(例如校准)方面很好地概括了。

    本文中的这种方法将扩展到逻辑回归的大样本量,并且可以扩展到适合具有凸损失函数的其他线性分类器。它不会处理具有很多功能的情况(除非n/d足够大,在这种情况下数据是可分离的,分类问题变得容易)。

  2. 如果您可以为您的模型指定额外的约束(例如单调性约束、辅助信息),那么这也可以通过减少假设空间来帮助泛化(参见例如本文)。

    这需要小心完成(例如,您可能希望将您的模型与没有约束的基线进行比较,并以确保您不受挑剔约束的方式设计您的训练过程)。