算法岗常见面试题(三):欠拟合和过拟合
欠拟合
欠拟合是指模型不能在训练集上获得足够低的误差,即,模型在训练集上表现很差,没有学习到数据背后的规律。
解决欠拟合的方法
- 添加新特征,挖掘“上下文特征”、“组合特征”
- 增加模型复杂度
- 减少正则化系数
过拟合
训练误差和测试误差之间的差距太大,即,模型在训练集上表现很好,但在测试集上表现很差,模型泛化能力差。
如何判断过拟合
可以通过查看训练集误差和验证集误差的方式查看过拟合,如果训练集误差和验证集误差差距大,训练集误差在下降,而验证集误差在上升,则可能是过拟合了。
解决过拟合的方法(大华一面)
- 交叉验证,通过交叉验证得到较优的模型参数
- 特征选择,减少特征数或者使用较少的特征组合,对于按区间离散化的特征,增大划分区间。(当样本特征数很多,而样本数很少的时候,很容易陷入过拟合。可以以多元方程式为例,样本少时,如果方程式中的参数越多,越容易过拟合。)
- 正则化,常用的有L1、L2正则。而且L1正则化可以自动进行特征选择;如果有正则项可以考虑增大正则项参数lambda。
- 增加训练数据可以有效的避免过拟合。减少了噪声的影响。
- bagging,将多个弱分类器bagging一下效果会更好,比如随机森林等。
- 随机森林:由多个决策树组成,每个决策树不相同。
- 随机:
- 样本随机 - 构建决策树时使用重采样;
- 特征随机 - 不会使用数据的全部特征。
- 优点:善于处理特征遗失数据、不平衡数据、高维数据
- 降低模型复杂度。
正则化为什么可以解决过拟合
主要原理是通过引入权重参数来限制模型复杂度,从而提高模型的泛化能力。正则化可理解为是一种“罚函数法”,即对不希望得到的结果施以惩罚,从而使得优化过程趋向于希望目标。
为什么提前停止可以解决过拟合问题
【AI学习之深度学习系列---提前终止_laojiangseu的博客-CSDN博客_提前终止算法】
提前终止是指:在测试误差开始上升之前,就停止训练,即使此时训练尚未收敛(即训练误差未达到最小值)。
#算法面经#