过拟合
在进行逻辑回归和线性回归时可能出现欠拟合和过拟合现象,欠拟合和过拟合均无法有效的应用到未测试数据中,过拟合对输入的实验数据的拟合效果异常完美,但是对未加入的数据拟合结果很差。下面三个图分别代指欠拟合,拟合良好和过拟合。(图片来自大牛吴恩达的课程)
产生过拟合的原因
特征量太多,而测试数据太少。
解决方法
1.人为的舍弃特征量(略)
2.正则化
正则化的基本思想是在代价函数中加入惩罚因子,将特征量的影响力减小。例如假设函数h(θx)=θ0+θ1x1+θ2x22+θ3x1x2h(θx)=θ0+θ1x1+θ2x22+θ3x1x2,我们在原代价函数的基础上加上1000θ22+1000θ231000θ22+1000θ32,这样我们在最小化代价函数时,θ3θ3和θ2θ2的值趋近于0,即弱化了后两项的影响力。当我们不知道弱化具体哪些项时,可以将所有项均弱化,这就叫做正则化,默认不弱化θ0θ0项。
线性回归中的正则化
1.梯度下降
代价函数变成如下形式:
J(θ)=12m[∑i=1m(hθ(xi)−yi)2+λ∑i=1nθ2i]J(θ)=12m[∑i=1m(hθ(xi)−yi)2+λ∑i=1nθi2]
更新θjθj(除θ0θ0):
θj=θj(1−αλm)−αm∑i=1m(hθ(xi)−yi)xiθj=θj(1−αλm)−αm∑i=1m(hθ(xi)−yi)xi
2.正规方程
正规方程变为如下形式,在原来的基础上添加了一个除第一行对角线为0,其余对角线上均为1的矩阵。(不清楚为什么,但是解决了XTXXTX的不可逆问题)
θ=(XTX+⎧⎩⎨⎪⎪⎪⎪⎪⎪0....1.........1⎫⎭⎬⎪⎪⎪⎪⎪⎪)−1XTYθ=(XTX+{0....1.........1})−1XTY
逻辑回归中的正则化
代价函数变为如下形式:
J(θ)=−1m∑i=1m(yiloghθ(xi)+(1−yi)log(1−hθ(xi))+λm∑j=1nθ2jJ(θ)=−1m∑i=1m(yiloghθ(xi)+(1−yi)log(1−hθ(xi))+λm∑j=1nθj2
更新θjθj(除了θ0)θ0):
θj=θj(1−αλm)−∑i=1m(hθ(xi)−yi)xijθj=θj(1−αλm)−∑i=1m(hθ(xi)−yi)xji