码迷,mamicode.com
首页 > 其他好文 > 详细

Regularization - Handle with the Overfitting Problem

时间:2017-03-17 00:31:39      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:over   fit   art   border   约束   param   pen   理想   效果   

一、什么是OverFitting

        我们说一个模型,他可以非常完美的拟合既定的训练数据,也就是代价(损失)函数技术分享,但是对于新的数据,却不能很好的拟合,也就是不适应于泛化,这样我们就称模型过拟合(over fitting),如下图第三个图所示。此外,还有欠拟合(under fitting),也就是连训练数据也不能够很好地做到拟合,如下图第一个图所示。那么下面中间这个图,我们理想地称之为恰好拟合。
技术分享
 
 技术分享

二、什么原因导致的OverFitting呢

        这里导致过拟合的主要原因在于,样本的feature过多,也就是说,当样本的特征很多的时候,为了去拟合全部的特征,而不加约束限制的话,有极大的可能,我们的模型会走极端,导致Over Fitting,体现在公式里面,就是诸如上面几个图里面恼人的高次项。当然这只是从我们自身找原因,觉得我们的算法太过于放纵,但是有些外部因素也可能导致过拟合,比如建模样本抽取错误,样本中的噪音过大,等等,这篇文章列举出了更多的导致过拟合的因素,可以围观。

三、如何解决因为Feature过多造成的OverFitting呢

     1. 减少Feature的数量

          · 我们可以通过手动筛选,哪些是我们想要的Feature,哪些不是,有些Feature可能都是冗余的,比如同样的土地,用不同的单位记录了多个Feature,那么如果这些单位不重要的话,我们觉得这些Feature是很多余的,因而要筛选之。
          · 此外,我们还可以通过一个模型选择算法来帮助我们筛选Feature,这种神奇的东西,我们留到后面来讲。     
             但是不管怎么说,我们都是忍痛割爱,为了我们的理想,献出了一部分Feature的生命,因而导致最后的效果可能并不是最理想的。

     2. 正则化(Regularization)
              通过正则化的思想,我们可以保全所有的Feature,不让他们成为我们理想的牺牲品,我们通过减小代价函数里面的技术分享的大小和数量级,来实现这一目标。

四、如何实现正则化(Regularization

        我们说了,正则化的思想是通过减小代价函数里面的技术分享的大小和数量级,那么理所当然的,我们需要对我们的代价函数做一些手脚,在其中给他们加些约束,不让他们过于放纵,导致过拟合。
        我们用上面那六个图里面,右上角的那个图举例子。该图中使用了高阶多项式技术分享,那么我们说正是因为这些恼人的高阶项,导致了过拟合的情况,所以,我们能做的就是使高阶项的系数能变得足够的小,以至于可以将其忽略掉。
        这里我们不考虑微积分怎么算出的下述结论,我们形象的做一个比喻,也就是我们之前说的约束,或者称其为惩罚(penalize)。我们想要高阶项的技术分享可以足够的小,那么我们就加大力度对其惩罚,不让他们那样放纵,所以我们将代价函数附加上两项:
技术分享
        这样一来,通过该代价函数梯度下降出来的最优解,所对应的θ3θ4,就会很小了。
        所以我们通过这个例子,进行一次抽象,我们将我们的代价函数写成下面的样子:
技术分享
        
       其中 λ 又称为正则化参数( Regularization Parameter),如果选择的正则化参数 λ 过大,则会把所有的参数都最小化了,导致模型变成 hθ(x)=θ0 ,造成矫枉过正的欠拟合。 注:根据惯例,我们不对 θ0行惩罚。经过正则化处理的模型与原模型的可能对比如下图所示:  
        技术分享

 

     

 
 

 
        
        





Regularization - Handle with the Overfitting Problem

标签:over   fit   art   border   约束   param   pen   理想   效果   

原文地址:http://www.cnblogs.com/zhkmxx930/p/5bdf019cc90d5a2236e31bb7124d05cf.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!