zoukankan      html  css  js  c++  java
  • 欠拟合、过拟合及解决方法

    一、欠拟合

        首先欠拟合就是模型没有很好的捕捉到数据特征,不能够很好的拟合数据,如下面的例子:

            左图表示size和prize关系的数据,中间的图就是出现欠拟合的的模型,不能够很好的拟合数据,如果在中间的多项式上再加一个二项式,就可以很好的拟合数据了,如右图所示。

            解决方法:

    1、添加其它的特征项,有时候模型欠拟合是数据的特征项不够造成的,可以添加其它的特征项来很好的解决,例如"组合","范化",”相关性“三类特征是特征添加的重要手段,无论在什么场合,都可以照葫芦画瓢,总会得到满意的效果。除上面的特征外,“上下文特征”、“平台特征”等等,都 可以作为特征添加的首选项。

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

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

     

    二、过拟合

           通俗一点来说是模型把数据学习的太彻底,以至于把数据中的噪声特征也学到了,这样就会导致后期测试的时候不能很好的识别数据,即不能正确的分类数据,模型泛化能力太差,例如下面的例子:

    上图左边表示size和prize的关系,我们学习到的模型曲线如右图所示,虽然在训练的时候很好的匹配数据,但是很显然扭曲了曲线,不是真实的size和prize曲线。

    解决方法:

          1、重新清洗数据,导致过拟合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据。

          2、增大数据的训练量,还有一个原因就是我们用于训练的数据量太小导致的,训练数据占总数据的比例过小

          3、采用正则化方法。正则化方法包括L0正则,L1正则和L2正则,而正则一般是在目标函数之后加上对于的范数,但是在机器学习中一般用L2正则

          4、采用dropout方法。这个方法在神经网络中很常用。dropout方法是imageNet中提出的一种方法,通俗一点讲就是dropout方法在训练时让神经元以一定概率的不工作,具体看下图:

       

    如上图所示,左图(a)是没有使用dropout方法的标准神经网络,右边(b)图是在训练时使用了dropout方法的神经网络,即在训练的时候以一定的概率p来跳过一定的神经元

     

  • 相关阅读:
    Ext JS学习第三天 我们所熟悉的javascript(二)
    Ext JS学习第二天 我们所熟悉的javascript(一)
    Ext JS学习第十七天 事件机制event(二)
    Ext JS学习第十六天 事件机制event(一)
    Ext JS学习第十五天 Ext基础之 Ext.DomQuery
    Ext JS学习第十四天 Ext基础之 Ext.DomHelper
    Ext JS学习第十三天 Ext基础之 Ext.Element
    Ext JS学习第十天 Ext基础之 扩展原生的javascript对象(二)
    针对错误 “服务器提交了协议冲突. Section=ResponseHeader Detail=CR 后面必须是 LF” 的原因分析
    C# 使用HttpWebRequest通过PHP接口 上传文件
  • 原文地址:https://www.cnblogs.com/baoxuhong/p/9818930.html
Copyright © 2011-2022 走看看