文章目录
8.1.过拟合问题
正则化:减少过拟合问题
什么是过拟合?
线性回归的过拟合:
过拟合将在变量过多的时候出现,这时训练出的假设能很好地拟合训练集,所以你的代价函数很可能接近于0,但是你可能会得到上图那样一个曲线,它千方百计地拟合训练集导致它无法泛化到新的样本中(泛化:一个假设模型应用到新样本的能力)。
逻辑回归的过拟合:
在逻辑回归中我们可以使用多项式无限逼近训练集的决策边界,即过拟合。
减少过拟合的方法:
1.减少特征变量的个数
(1)人工检查变量清单,选择重要的特征变量
(2)模型选择算法
运用这种方法虽然解决了一些问题,但是你也舍弃了一些信息
2.正则化
保留所有的特征变量,减少量级/θ_j,每一个特征变量都能对预测值产生影响。
8.2.代价函数
目标:学习正则化的运行,及正则化的代价函数
为了应对过拟合问题,我们加入惩罚值,使得
θ
3
θ_3
θ3和
θ
4
θ_4
θ4(高阶项)非常小。这就意味着我们要最小化其均方误差代价函数(图中修改后的的式子,1000只是代表一个比较大的数)。那就要θ3和θ4尽可能地小,趋近于0。既然θ3和θ4趋近于0,那么代价函数实际上还是个二次函数,因为三次和四次的参数都趋近于0,这样就解决了过拟合问题。
正则化的思想:
如果我们的参数值较小,意味着一个更简单的假设模型,更不易于过拟合
举个例子:房屋预测。
假设我们有100个特征,像:房屋大小、房间数量等。和以前的多项式不同,我们并不知道θ3和θ4是高阶项,我们不知道哪个特征相关度较低。
也就是说,我们有101个参数,我们不知道该选出哪些参数来缩小它们的值。
因此,在正则化中,我们要做的是修改线性回归代价函数来缩小所有参数,因为我们不知道哪个参数在高阶项。
修改后的代价函数:
这就是正则化代价函数,在后面加了一个正则化项,这个项的作用是缩小每一个参数(除了
θ
0
θ_0
θ0),λ是正则化参数。
但是如果我们对每个参数的惩罚值都过大,它们都趋近于0,就剩下一个
θ
0
θ_0
θ0,相当于用直线去拟合数据。
所以为了更好地拟合数据,我们应当选择合适的λ。(后面的多重选择会讲如何自动地选择λ)
8.3.线性回归的正则化
1.梯度下降法最小化J(θ):
粉红框中就是正则化的代价函数的偏导。蓝框就是线性回归代价函数的偏导。
1-αλ/m略小于1,就像是0.99,θj(1-αλ/m)就是把θj缩小了一点点。
每次迭代时都把θj乘一个略小于1的数,每次都把它缩小一点。
因为我们的惩罚项不包括
θ
0
θ_0
θ0,所以它单独写,不含正则化项。
2.正规方程最小化J(θ):
建立一个设计m×(n+1)维矩阵X,它的每一行都代表一个单独的训练样本。
建立一个m维的向量y,包含训练集里的所有标签。
为了最小化代价函数,让θ等于以下这个式子(正规方程法,详见多元线性回归):
θ
=
(
X
T
X
)
−
1
X
T
y
\theta=(X^TX)^{-1}X^Ty
θ=(XTX)−1XTy
这个就是让J(θ)的偏导设为0,反向推出来的θ。
如果J(θ)有正则化项:
8.3.逻辑回归的正则化
逻辑回归和它的代价函数:
正则化:
梯度下降法最小化:
它同线性回归的正则化的区别是假设函数
h
θ
(
x
)
不
同
h_\theta(x)不同
hθ(x)不同