往期回顾
神经网络之过拟合与欠拟合
过拟合 (Overfitting)及其解决方法
在做项目或者参加比赛的时候,经常会遇到过拟合的问题。结合你的实际经历,讲讲你是怎么理解过拟合以及怎么解决过拟合问题的?
产生过拟合的原因
- 样本方面的原因。样本数量太少或者抽出的样本数据不能有效足够代表业务逻辑或业务场景。
- 样本里的噪声数据干扰过大,使得模型过分记住了噪声特征,反而忽略了真实的输入输出间的关系。
- 参数太多及模型复杂度高
欠拟合:模型没有很好地捕捉到数据特征,不能够很好地拟合数据
解决方法:
-
添加其他特征项,有时候我们模型出现欠拟合的时候是因为特征项不够导致的,可以添加其他特征项来很好地解决。例如,“组合”、“泛化”、“相关性”三类特征是特征添加的重要手段,无论在什么场景,都可以照葫芦画瓢,总会得到意想不到的效果。除上面的特征之外,“上下文特征”、“平台特征”等等,都可以作为特征添加的首选项。
-
添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强。例如上面的图片的例子。
-
减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。
过拟合:模型把数据学习的太彻底,以至于把噪声数据的特征也学习到了。
解决方法:
-
重新清洗数据,导致过拟合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据。
-
增大数据的训练量,还有一个原因就是我们用于训练的数据量太小导致的,训练数据占总数据的比例过小。
-
采用正则化方法。正则化方法包括L0正则、L1正则和L2正则,而正则一般是在目标函数之后加上对于的范数。但是在机器学习中一般使用L2正则,下面看具体的原因。
-
采用dropout方法
[1]. 过拟合产生的原因有哪些
[2]. 欠拟合、过拟合及其解决方法