过拟合问题?出现原因?怎么解决?

Posted 辉常努腻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过拟合问题?出现原因?怎么解决?相关的知识,希望对你有一定的参考价值。

过拟合问题

  • 为了得到一致假设而使假设变得过度复杂称为过拟合(overfitting),过拟合表现在训练好的模型在训练集上效果很好,但是在测试集上效果差。

出现原因?

  • 训练集的数量级和模型的复杂度不匹配。训练集的数量要小于模型的复杂度;
  • 训练集和测试集特征分布不一致;
  • 样本里的噪音数据干扰过大,大到模型过分记住了噪音特征,反而忽略了真实的输入输出间的关系;
  • 权值学习迭代次数足够多(overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征。

怎么解决?

  1. 数据集扩增(Data Augmentation)

    增加训练数据样本。训练集越多,过拟合的概率越小。

  2. 数据处理-清洗数据

    丢弃一些不能帮助正确预测的特性。纠正错误的label,或者删除错误数据。

  3. dropout方法

    通过修改隐藏层神经元的个数来防止过拟合。

  4. early stepping

    是一种迭代次数截断的方法来防止过拟合。即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合。

  5. 正则化(Regularization) :L1和L2

    保留所有特性,但是减少参数的大小。

    L1和L2是正则化项,又叫做罚项,是为了限制模型的参数,防止模型过拟合而加载损失函数后面的一项。

拓展

在 MLlib 中,标准的最小二乘回归不使用正则化。正则化是用于解决过拟合问题的。但是应
用到错误预测值的损失函数会将错误做平方,从而放大损失。这也意味着最小二乘回归对数据中的异常点和过拟合非常敏感。因此对于分类器,我们通常在实际中必须应用一定程度的正则化。

  • 线性回归在应用 L2 正则化时通常称为岭回归( ridge regression ),应用 L1 正则化时称为 lasso
    ( least absolute shrinkage and selection operator )。

  • 当数据集不大或样本很少时,模型过拟合的可能性很大。因此,十分建议使用如 L1 、 L2 或
    elastic net regularization 这样的正则表达式。

以上是关于过拟合问题?出现原因?怎么解决?的主要内容,如果未能解决你的问题,请参考以下文章

数学模型的过拟合和欠拟合

过拟合的问题

机器学习:过拟合与正则化

过拟合与欠拟合

神经网络:欠拟合和过拟合

DropOut