Overfitting: Source and Control

机器学习中过度拟合的产生和控制


过度拟合(overfitting)是传统的统计算法和目前流行的机器学习中常遇到的问题。传统的统计算法由于受到样本采样,过度依赖样本数据等局限,使得过度拟合不可避免。而在机器学习的应用中,如果机器学习模型使用失当,过度拟合造成的影响将大于传统的统计算法造成的影响。

1. 过度拟合的产生

过度拟合的产生可以从误差估计得到解释。在常用的mean squared error中,真实的模型是不可知的,假设为f(x)。使用各种机器学习模型得到的是f(x)的近似函数,记为g(x)。假设y是模型需要预测的标签。那么 MSE = E[(y-g(x))^2]。而MSE可以分解为三个部分:
  • 偏差bias:E[(f(x)-g(x))^2]
  • 方差variance:V[g(x)]
  • 噪音noise:V[epsilon]
当模型对数据拟合不足时,会产生偏差。而过度拟合时,会产生方差。一般情况下,模型复杂度增加时,偏差会逐渐减小,方差会逐渐增大,而MSE是两者权衡的结果。

2. 过度拟合的两个来源

典型的机器学习应用中,我们将数据分为样本内(in-sample)和样本外(out-of-sample)。样本内数据根据需要会分割成训练数据(train), 验证数据(validation)和测试数据(test)。模型性能的度量和最优模型的选取取决于从训练数据和测试数据获得的误差估算。因此,过度拟合的来源有两个:训练数据和测试数据。

2.1. 训练数据的过度拟合

使用训练数据选取最优模型时,常常以降低训练数据的误差为目标,代价可能是方差的增大,尤其是测试数据的方差。这是典型的过度拟合产生的场景。造成这个现象的原因往往是因为模型过于复杂。当模型变得越来越复杂,参数越来越多,对训练数据的拟合变得越来越好,但是复杂的模型缺乏适用性,在样本外数据的性能变得很差。

一个典型的例子是多项式逼近。使用维度越来越高的多项式可以逼近复杂的样本内的曲线数据,但是随之带来的风险是高维多项式对样本外数据缺乏适用性。

解决的方案包括:
  • 简化模型,降低参数数量。取得更多的训练数据以加强模型的适用性。
  • 使用重抽样方法(resampling methods)例如交叉验证。这种方法避免对单一的数据估算模型误差,最后得到的验证数据的错误率——通常用均方误差作为定量响应变量的误差度量——提供了对于测试错误率的一个估计。
  • 使用集成模型(Ensemble Models)降低整体误差风险
  • 正则化:加入额外信息,往往以惩罚函数的形式加入
2.2. 测试数据的过度拟合

以减小测试数据的误差作为目标选取模型时,随之产生的风险是方差增大,尤其是样本外数据的方差。导致的原因常常是选择模型的方法不当造成的。值得注意的是此时模型本身的复杂度和测试数据的误差没有关联。

解决的方案有
  • 使用更多的数据用于测试。当新的数据难以获得时,采用合成数据
  • 在模型的测试中,注意控制False Positive
  • 控制方差,例如在量化交易的应用中,采用deflated Sharpe ratio

Read the article in Linkedin: here