欠拟合:模型在训练数据集和测试数据集以及新的数据集上表现的能力很差,即:在训练集和测试集上的准确率都很低。原因:模型没有充分学习到训练数据集中目标的特征,导致 模型过于简单,无法做出正确的预测。
解决方法:
1,在原有的基础上添加更多的特征项。
2,如果是深度学习,可以适当的增加隐藏层数以及隐藏神经单元,或者换用更复杂的神经网络模型。机器学习中可以通过添加多项式特征来改进。
3,减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。
过拟合:模型在训练数据集上则准确率很高,但是在测试数据集和预测的数据集上表现能力很差(无法正确分类或者预测想要的目标),原因:模型在训练集上表现的能力非常好,不仅学习到了训练数据集中的特征,还将数据集中的其他无用的噪声(或者特征)也学习到了,认为这些噪声也是目标的特征,因此在预测时无法正确预测出目标。
解决方法:
1)对数据进行清洗后重新训练。
2)增大训练数据集并丰富训练数据集的种类。
3)采用正则化方法。
4)采用dropout方法。dropout的方法是通过设定模型隐藏层中一定比例的神经元不参与当前的网络模型训练,可认为这一定比例的神经元不存在或者不接收和输出数据。模型的输入神经元和输出神经元保持不变。
5)减小数据特征的维度。
一个不太恰当的例子:小孩认知苹果。
小孩学习到的苹果特征是:圆形、体积大、红色。如果当我们拿一个圆形、体积大的青苹果给该小孩辨认,该小孩会预测出这不是苹果。小孩没有学习到的特征:苹果也有青色的。 学习的过于简单。
小孩学习到的苹果特征:圆形、体积大、红色、带有枝叶。如果同样拿一个青苹果给该小孩辨认,该小孩很有可能预测这不是苹果。因为该青苹果未带枝叶,枝叶这个特征属于噪声,学习的过于复杂。
关于何时停止模型的训练(Early stopping):
1、当训练模型达到收敛时,即模型的损失率不再来回震荡且很小时,可认为模型训练好了。
2、Early stopping在模型达到指定迭代次数之前停止训练,目的是防止模型训练过程中出现过拟合情况。如果在训练过程中出现了一个当前的最好的准确率,且在这之后连续训练了十次以上的epoch都没有达到当前几录的最好的准确率时,一般可以认为模型的准确率达到了最高,且不再增加,即可停止训练,减少训练的时间成本。
本文参考链接:https://blog.csdn.net/qq_41761524/article/details/81517193