数据挖掘的实际工程中,常常出现模型在训练数据集上的效果好,而在测试集上的效果差的情况,也就是模型的泛化能力很差,这就是常说的过拟合。此处给出几种常见的过拟合解决方法。
1、降维
在样本不变的情况下,随着维数的增加,样本空间越来越稀疏。假设样本为100,每个特征的宽度为5,则在维数为2时,样本空间的密度为100/(5 * 5) = 4,而当维数为3时,样本空间的密度为 100/(5 * 5 * 5) = 0.8,这时的样本空间的密度就降低了。
2、增加样本数量
跟方法1的效果一样,在特征不增加的情况下,增加样本的数量,就相当于增加了样本密度,能有效的防止过拟合。
3、early stop(提前结束,跟overtrain相反)
可以适当的调整训练结束的条件,如适当增大程序终止的误差值。
4、正则化
效果与方法3类似,但思想不同,正则化是在当模型变得更复杂时,加入一定的惩罚,使得模型不会过分的拟合训练数据而变得复杂。
5、交叉验证
严格来讲,交叉验证不是一种防止过拟合的方法,但是交叉验证是一种很好的检验过拟合的方法。常用的交叉验证有S-折交叉验证和留一交叉验证(后者是前者的特例)。
6、更换模型
当然,在条件允许的情况下,可以考虑将复杂的模型更换为简单的模型。