欠拟合与过拟合
欠拟合是指模型在训练集、验证集和测试集上均表现不佳的情况;
过拟合是指模型在训练集上表现很好,到了验证和测试阶段就大不如意了,即模型的泛化能力很差。
欠拟合和过拟合一直是机器学习训练中的难题,在进行模型训练的时候往往要对这二者进行权衡,使得模型不仅在训练集上表现良好,在验证集以及测试集上也要有出色的预测能力。下面对解决欠拟合和过拟合的一般方法作一总结,说明大致的处理方向,具体应用还得结合实际的任务、数据和算法模型等。
解决欠拟合(高偏差)的方法
1. 模型复杂化
• 对同一个算法复杂化。例如回归模型添加更多的高次项,增加决策树的深度,增加神经网络的隐藏层数和隐藏单元数等
• 弃用原来的算法,使用一个更加复杂的算法或模型。例如用神经网络来替代线性回归,用随机森林来代替决策树等
2. 增加更多的特征,使输入数据具有更强的表达能力
• 特征挖掘十分重要,尤其是具有强表达能力的特征,往往可以抵过大量的弱表达能力的特征
• 特征的数量往往并非重点,质量才是,总之强特最重要
• 能否挖掘出强特,还在于对数据本身以及具体应用场景的深刻理解,往往依赖于经验
3. 调整参数和超参数
• 超参数包括:
- 神经网络中:学习率、学习衰减率、隐藏层数、隐藏层的单元数、Adam优化算法中的β1和β2参数、batch_size数值等
- 其他算法中:随机森林的树数量,k-means中的cluster数,正则化参数