跟着Andrew Ng挑战Machine Learning(第三周)Part 3:过拟合问题

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/credolhcw/article/details/73409726

注意:
  即便事情太多(学习,作报告,做实验……),填坑太慢,我也不准备弃坑,有始有终。
  建议有条件的童鞋去Coursera上学习,不仅免费还精心准备了很多联系帮助理解,以下是链接(看视频需要翻墙):
  https://www.coursera.org/learn/machine-learning/


什么是过拟合?

  当我们选择了过多的特征的时候就可能发生过拟合问题,即 hθ(x⃗ ) 在训练集上表现的非常好,甚至 J(θ⃗ )0 。但是在进行预测时发现其表现并不理想,甚至是非常糟糕。那么,此时就很有可能是过拟合的情况。

  如下图,分别是线性归回问题和逻辑回归问题下的过拟合问题的描述(这是我直接从Courera的课程中截过来的图,仅稍作翻译):
  
Overfit_LinearRegression
Overfit_LogisticRegression


如何解决过拟合问题?

  吴老师提供了两类共三个方法:

  第一类是消减特征数量。主要有两个方法,第一个方法是人工消减,根据我们自身的经验尝试的手动的消减特征,前提是特征不多的情况下。第二个方法是用现有的模型或者方法进行特征消减,比如PCA(在之后的章节中介绍)。

  第二类是正则化(Regularization)。正则化可以在不消减特征数的情况,消除过拟合。当有很多的特征时,正则化的表现也是非常不错的。这一章就介绍一下正则化的方法。

  方法很简单,仅需对代价函数稍作变形即可。这里采用的是使用的最广泛的方法,公式如下:
  

J(θ⃗ )=12mi=1m(hθ(x⃗ (i))y(i))2+λ2mj=1nθ2j

  可以看到,仅仅是在代价函数原有的基础上增加了一个算子。 n 为特征个数, λ 为正则化系数,这里需要确定的是 λ 的值,当其值趋近于零时,就相当于未做正则化变化(图形参见上面的“过拟合”)。

  当其值很大的时候,比如 1010 ,可以理解为对相应的 θj 进行惩罚,使其近似于 0 (至于为什么我目前也不太懂)。最终得到的结果如下图:
  
  Underfit

  如果找到一个合适的 λ ,我们就能得到一个不错的拟合结果了:

Regularize Well

  上图都是线性回归的,其实对于逻辑回归,操作都是一样,所以就不细数了。
  


小结

  过拟合问题是一个常见的问题,由于我目前实践的经验不多,这部分也就只能总结这么一点了。这里给自己挖个坑——以后总结一章解决过拟合问题的方法。
  接下来的一章,记录一下这两周的练习题。

猜你喜欢

转载自blog.csdn.net/credolhcw/article/details/73409726
今日推荐