【吴恩达】机器学习第8章学习收获以及编程题

1.过拟合问题

所谓过拟合问题是说变量过多的一些扭曲的无限可以完全拟合当前的数据集但无法适用于新的数据输入。这一类现象通常表现出高方差。欠拟合是说无法拟合当前数据,达到目标。

2.如何解决过拟合问题:

2.1一种是通过分析减少不合适的变量,达到简化模型的目标。

2.2另一种是正则化。正则化则是给\theta添加惩罚项,从而尽可能简化模型。比如h_{\theta}(x)=\theta_{0}+\theta_{1}X_{1}+\theta_{2}X_{2}+\theta_{3}X_{3}+\theta_{4}X_{4},通过添加惩罚项,较小了相应\theta的大小,从而达到目标。惩罚项不针对\theta_{0},从1开始。

2.2.1线性回归梯度下降正则化

添加了惩罚项\lambda \sum_{j=1}^{n}\theta _{j}^2,然后通过化简:我们可以得到:

 

由于\theta_{0}不参与惩罚,所以进行梯度下降的时候,需要单独写出来。在对J(theta)进行偏导数求解之后,我们\theta_{j}的系数提取出来,从而得到(1)(1-\alpha \lambda /m),然后我们会发现后面的一项和没有进行正则化的情况一样,由于(1)<1的,我们则可以理解正则化其实就是每次把\theta变小一些,从而简化(简化过程需要后续研究)

以上是线性回归问题的梯度下降方法的正则化。逻辑回归的正则化与线性回归梯度下降正则化相同。

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
%没有测试 运行起来有些不对 但是没有找到问题所在

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值