对于下面的数据进行建模,可以使用线性回归,即使用多项式拟合曲线.
image.png

比如说使用函数:

\theta _ { 0 } + \theta _ { 1 } x + \theta _ { 2 } x ^ { 2 }

image.png

有的时候,我们很难确定多项式数目,比如说下面,我们错误估计了多项式的个数,增加了许多高次项:

\theta _ { 0 } + \theta _ { 1 } x + \theta _ { 2 } x ^ { 2 } + \theta _ { 3 } x ^ { 3 } + \theta _ { 4 } x ^ { 4 }

image.png
很显然,这个模型是糟糕的,虽然它经过了所有数据的点,但是它不具有泛化性,它是严重的过拟合的.可以看到过拟合的原因是因为多项式数目太多了,减少多项式数目就可以避免过拟合的发生.

那么如何用尽量少的多项式呢?我们来修改一下cost function:

J(\theta) = \dfrac{1}{2m}\ \sum_{i=1}^m (h_\theta(x^{(i)}) - y^{(i)})^2 + \lambda\ \sum_{j=1}^n \theta_j^2

我们把J(\theta)增加了\lambda\ \sum_{j=1}^n \theta_j^2,也就是说,在梯度下降的过程中,不仅要保证误差足够小,还要保证\theta之和足够小.

再来看上面的例子,若要保证\theta之和足够小,\theta_3\theta_4就会趋近于0,这样就达到了控制多项式数目的目的.

其中\lambda是正则化参数,如果模型过拟合,可以考虑增大这个参数,相反的,如果模型欠拟合,可以考虑减小这个参数.

posted @ 2018-08-01 09:28:38
评论加载中...

发表评论