1.过拟合问题
所谓过拟合问题是说变量过多的一些扭曲的无限可以完全拟合当前的数据集但无法适用于新的数据输入。这一类现象通常表现出高方差。欠拟合是说无法拟合当前数据,达到目标。
2.如何解决过拟合问题:
2.1一种是通过分析减少不合适的变量,达到简化模型的目标。
2.2另一种是正则化。正则化则是给添加惩罚项,从而尽可能简化模型。比如,通过添加惩罚项,较小了相应的大小,从而达到目标。惩罚项不针对,从1开始。
2.2.1线性回归梯度下降正则化
添加了惩罚项,然后通过化简:我们可以得到:
由于不参与惩罚,所以进行梯度下降的时候,需要单独写出来。在对J(theta)进行偏导数求解之后,我们的系数提取出来,从而得到(1)(1-),然后我们会发现后面的一项和没有进行正则化的情况一样,由于(1)<1的,我们则可以理解正则化其实就是每次把变小一些,从而简化(简化过程需要后续研究)
以上是线性回归问题的梯度下降方法的正则化。逻辑回归的正则化与线性回归梯度下降正则化相同。
2.2.2线性回归正规方程正则化
对于正规方程来说,
正则化就是添加红框中的项,当lamda大于0的时候,通过正则化可以保证这方程是可逆的。
3.编程题:
costFunctionReg:
Z=X*theta;
h=1/1+exp(-Z);
J=sum(-y'*log(h)-(1-y)'*log(1-h))/m;
J=J+(lambda/2/m)*theta'*theta;
grad=sum((h-X)'*X/m);
for i=2:size(theta),
grad=grad+(lambda/m)*theta(i);
end
predict:
Z=X*theta';
h=1./1+exp(-Z);
for i=1:m,
if h(i)>=0.5,
p(i)=1;
else,
p(i)=0;
end
end
%没有测试 运行起来有些不对 但是没有找到问题所在