[机器学习]overfitting 和regularization

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/aFeiOnePiece/article/details/47712351
overfitting,见下图。就是说,你的model太好了,好到只对training data有用,而test data可能并不待见。


原因就是如图所说,太多feature,可能这些feature是冗余的呢。

怎么解决这个问题i?
首先想到的可能是 减少feature!但这个得人工来整。

其次,换一个角度看问题(世界可能大不一样)。如果像上图那个overfitting的例子一样,theta3和theta4非常小,甚至为0,也可以一定程度上缓解overfitting。
如下图,我们通过1000这个系数来使theta3和theta4在min CostFunction的时候变得非常小。最后得到的曲线就是粉色的那条


于是,我们可爱的前辈们证明了下面的式子(证明是个头疼的问题,可以参考台湾大学 林轩田教授的 《机器学习基石》课程)



这里引入一个参数 lambda。lambda的选择至关重要,一个好的lambda可以避免overfitting。同时,如果lambda特别大,theta就会整体取值为0,导致underfit

J(theta)加入 regularization项之后,其偏微分也要跟着改变,直接影响GD算法计算theta的迭代式

这里注意一点:我们的lambda是不作用在 theta0上的,因为x0=1是我们人为加上的


在逻辑回归中,也有类似的效果



猜你喜欢

转载自blog.csdn.net/aFeiOnePiece/article/details/47712351