zoukankan      html  css  js  c++  java
  • 欠拟合和过拟合

      机器学习是利用模型在训练集中进行学习,在测试集中对样本进行预测。模型对训练集数据的误差称为经验误差,对测试集数据的误差称为泛化误差。模型对训练集以外样本的预测能力称为模型的泛化能力。

      欠拟合(underfitting)和过拟合(overfitting)是模型泛化能力不高的两种常见原因,都是模型学习能力与数据复杂度不匹配的情况。

      欠拟合常常在模型学习能力比较弱,而数据复杂度较高的场景出现,由于模型学习能力不足,不能有效学习数据集的一般规律,导致模型泛化能力较弱

      过拟合常常在模型学习能力过强的场景中出现,由于模型学习能力太强,把训练集中单个样本的特点都能学习到,并将其作为一般规律,同样也导致模型泛化能力较弱。

      欠拟合在训练集和测试集上能力都较差,而过拟合则在训练集能较好学习数据的特征,在测试集上预测能力较差。

      

      产生欠拟合 的原因:

      1、模型过于简单

      2、模型特征量过少

      欠拟合解决办法

      1、增加新特征,可以考虑加入进特征组合、高次特征,来增大假设空间

      2、添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强

      3、减少正则化参数,正则化的目的是用来防止过拟合的,但是模型出现了欠拟合,则需要减少正则化参数

      4、使用非线性模型,比如核SVM 、决策树、深度学习等模型

      5、调整模型的容量(capacity),通俗地,模型的容量是指其拟合各种函数的能力

      6、容量低的模型可能很难拟合训练集;使用集成学习方法,如Bagging ,将多个弱学习器Bagging

      产生过拟合原因:

      1、建模样本选取有误,如样本数量太少,选样方法错误,样本标签错误等,导致选取的样本数据不足以代表预定的分类规则

      2、样本噪音干扰过大,使得机器将部分噪音认为是特征从而扰乱了预设的分类规则

      3、假设的模型无法合理存在,或者说是假设成立的条件实际并不成立

      4、参数太多,模型复杂度过高

      5、对于决策树模型,如果对于其生长没有合理的限制,其自由生长有可能使节点只包含单纯的事件数据(event)或非事件数据(no event),使其虽然可以完美匹配(拟合)训练数据,但是无法适应其他数据集

      6、对于神经网络模型:对样本数据可能存在分类决策面不唯一,随着学习的进行,,BP算法使权值可能收敛过于复杂的决策面;权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征

       

      过拟合解决办法:

      1、正则化(Regularization)(L1和L2)

      2、数据扩增,即增加训练数据样本

      3、Dropout

      4、Early stopping

       参考:https://www.cnblogs.com/zhhfan/p/10476761.html

  • 相关阅读:
    FZU2150 Fire Game
    POJ3414 Pots
    POJ3087 Shuffle'm Up
    POJ3126 Prime Path
    POJ1426 Find The Multiple
    POJ3279 Fliptile
    甘特图实用技巧——项目进度一目了然!
    连设计图都不会画,你还想做“系统架构师”?
    java中list和map的底层实现原理
    redis四种部署方式
  • 原文地址:https://www.cnblogs.com/shaosks/p/15557363.html
Copyright © 2011-2022 走看看