参考:
https://zhuanlan.zhihu.com/p/105558950?utm_source=wechat_session
过拟合
就是指分类模型过度学习了训练实例,导致模型在测试时效用低。可以通过在损失函数中加入正则化罚项来避免模型过拟合,在神经网络模型中的Dropout层的作用也是为了避免过拟合。还可以通过停止训练来避免过拟合,具体做法是:在训练迭代过程中,如果训练集上的损失继续减小,而验证集上的损失不再改变,则停止训练。
1)造成原因:
· 训练样本数据太少或者缺乏代表性;
· 噪声,即数据样本不准确;
· 特征维度过多;
· 参数过多,训练过度;
2)解决方法:
· 获取更多训练数据;
· 数据清洗,纠正或者删除错误数据样本;
· 降维;
· 正则化,降低参数值;(PS:正则化及方法又是一个待学习点)
· 限制训练时间;
· 选择合适的模型,或者集合学习
欠拟合
指分类模型没有学习到真正的分类判据。比如当训练数据是线性不可分的,而使用的分类器却只能拟合线性可分数据,此时测试模型准确率会很低,无法实现分类问题。再比如,当预测文本中含有一个在训练集中从未出现过的词A,而这个词又是类目核心词,那分类器一定无法准确预测这条文本了,要么就是预测为“其他”,要么就是根据句子中A以外的词错误预测。最后一种导致欠拟合的情况是训练迭代次数不够,也就是说训练集上的损失还可以随着迭代地进行继续减小却停止训练。
1)造成原因:
· 训练迭代次数不够;
· 特征维度过少;
· 模型过于简单;
2)解决方法:
· 增加特征维度(对于神经网络方法可以增加神经元;对于线性模型可以添加多项式特征;其他手段还包括“组合”、“泛化”、“相关性”);(泛化、相关性???)
· 增加训练迭代次数;
· 减少正则化参数;
综上,看的头很大,还有两个待学习点 (正则化;增加特征维度:泛化、相关性)。