machine-learning-ex3 编程题内容回顾(答案)

  1. 用向量化的方式一次性求得了正则化的梯度与代价函数
    需要注意的是不要把theta0进行正则化。
grad=X'*(sigmoid(X*theta)-y)/m;
temp = theta; 
temp(1) = 0;
J=(-y'*log(sigmoid(X*theta))-(1-y')*log(1-sigmoid(X*theta)))/m+lambda/(2*m)*(temp'*temp);
grad=grad+lambda/m*temp;
  1. 写“一对比所有”训练过程,利用fmincg(大规模时效率比fminunc高),得到训练结果theta。
for c = 1:num_labels
    initial_theta = zeros(n + 1, 1);
    options = optimset('GradObj', 'on', 'MaxIter', 50);
    [theta, J, exit_flag] = fmincg (@(t)(lrCostFunction(t, X, (y == c), lambda)),initial_theta, options);
    all_theta(c,:)=theta';
end
  1. 计算结果准确率,用样本乘以theta,最后用p表示预测结果
predict=sigmoid(X*all_theta');
[M,p]=max(predict,[],2);
  1. 利用训练好的神经网络模型,计算神经网络结果准确率,同样要注意的是在样本中加入值为1的特征。
X=[ones(size(X,1),1) X];
z2=X*Theta1';
a2=sigmoid(z2);
a2=[ones(size(a2,1),1) a2];
z3=a2*Theta2';
predict=sigmoid(z3);
[M,p]=max(predict,[],2);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值