过拟合
第一个模型是一个线性模型,欠拟合,不能很好地适应我们的训练集;第三个模型是一个四次方的模型,过于强调拟合原始数据,而丢失了算法的本质:预测新数据。我们可以看出,若给出一个新的值使之预测,它将表现的很差,是过拟合,虽然能非常好地适应我们的训练集但在新输入变量进行预测时可能会效果不好;而中间的模型似乎最合适。
分类问题中也存在这样的问题:
如果我们发现了过拟合问题,应该如何处理?
1.丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如PCA)
2.正则化。 保留所有的特征,但是减少参数的大小(magnitude)。
代价函数正则化
如果选择的正则化参数λ过大,则会把所有的参数都最小化了,导致模型变成 h_θ (x)=θ_0,也就是上图中红色直线所示的情况,造成欠拟合。
那为什么增加的一项λ=∑_(j=1)n▒θ_j2 可以使θ的值减小呢?
因为如果我们令 λ 的值很大的话,为了使Cost Function 尽可能的小,所有的 θ 的值(不包括θ_0)都会在一定程度上减小。
但若λ的值太大了,那么θ(不包括θ_0)都会趋近于0,这样我们所得到的只能是一条平行于x轴的直线。
所以对于正则化,我们要取一个合理的 λ 的值,这样才能更好的应用正则化。
回顾一下代价函数,为了使用正则化,让我们把这些概念应用到到线性回归和逻辑回归中去,那么我们就可以让他们避免过度拟合了。
线性回归
逻辑回归
注:看上去同线性回归一样,但是知道 h_θ (x)=g(θ^T X),所以与线性回归不同。
Octave 中,我们依旧可以用 fminuc 函数来求解代价函数最小化的参数,值得注意的是参数θ_0的更新规则与其他情况不同。
注意:
虽然正则化的逻辑回归中的梯度下降和正则化的线性回归中的表达式看起来一样,但由于两者的h_θ (x)不同所以还是有很大差别。
θ_0不参与其中的任何一个正则化。