定义
- 过拟合:模型在参数拟合过程中,学习到了训练数据所包含的抽样误差(噪声),即过分拟合了训练集的分布特点,当测试集分布与训练集有一定差距时,会在测试集上表现较差导致模型训练误差很小、但测试误差很大,从而泛化性弱。
- 简单说两个原因:数据太少+模型太复杂
- 欠拟合:模型拟合训练数据的误差很大
其他问题
- 如何避免过拟合:
- 增加数据,使训练集数据分布更接近于实际场景的测试集分布
- 从数据源获取更多数据
- 数据增强,根据一定规则扩充数据
- 简化模型,降低模型复杂度
- 正则化(限制权值)
- early stopping(限制训练时间)
- 增加噪声:数据/权值/网络
- 简化特征工程,减少建模特征数量(降维技术不能解决,不减少特征信息)
- 简化模型函数假设(比如决策树限制树深、神经网络减少层数)
- 集成学习:一个模型输出得到的期望误差比多个模型平均输出得到的期望误差大(需推理)
- bagging/boosting(?):训练的都是较为简单的弱学习器
- dropout(?):可看作一个样本生成一个神经网络,且权值共享
- 贝叶斯方法(?)
- 增加数据,使训练集数据分布更接近于实际场景的测试集分布
参考资料
★机器学习中用来防止过拟合的方法有哪些? - fly qq的回答 - 知乎
欠拟合、过拟合及如何防止过拟合 - G-kdom的文章 - 知乎