2020-03-23
阅读量:
1207
模型过拟合或欠拟合如何调整?
过拟合(overfitting):指算法模型在训练集上的性能非常好,但是泛化能力很差,泛化误差很大,即在测试集上的效果却很糟糕的情况。
- 过拟合的原因:将训练样本本身的一些特点当作了所有潜在样本都具有的一般性质,这会造成泛化能力下降;另一个原因是模型可能学到训练集中的噪声,并基于噪声进行了预测;
- 过拟合无法避免,只能缓解。因为机器学习的问题通常是 NP 难甚至更难的,而有效的学习算法必然是在多项式时间内运行完成。如果可以避免过拟合,这就意味着构造性的证明了 P=NP 。
欠拟合(underfitting):模型的性能非常差,在训练数据和测试数据上的性能都不好,训练误差和泛化误差都很大。其原因就是模型的学习能力比较差。
一般可以通过挑战模型的容量来缓解过拟合和欠拟合问题。模型的容量是指其拟合各种函数的能力。
容量低的模型容易发生欠拟合,模型拟合能力太弱。
容量高的模型容易发生过拟合,模型拟合能力太强。
一般解决过拟合的方法有:
- 简化模型,这包括了采用简单点的模型、减少特征数量,比如神经网络中减少网络层数或者权重参数,决策树模型中降低树的深度、采用剪枝等;
- 增加训练数据,采用数据增强的方法,比如人工合成训练数据等;
- 早停,当验证集上的误差没有进一步改善,训练提前终止;
- 正则化,常用 L1 或者 L2 正则化。
- 集成学习方法,训练多个模型,并以每个模型的平均输出作为结果,降低单一模型的过拟合风险,常用方法有 bagging 、boosting、dropout(深度学习中的方法)等;
- 噪声注入:包括输入噪声注入、输出噪声注入、权重噪声注入。将噪声分别注入到输入/输出/权重参数中,虽然噪声可能是模型过拟合的一个原因,但第一可以通过交叉验证来避免;第二就是没有噪声的完美数据也是很有可能发生过拟合;第三可以选择在特征、权值参数加入噪声,而非直接在数据加入噪声。
解决欠拟合的方法有:
- 选择一个更强大的模型,带有更多参数
- 用更好的特征训练学习算法(特征工程)
- 减小对模型的限制(比如,减小正则化超参数)






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论