machine_learning_ex3笔记

逻辑回归的cost function(有regulation)

hTheta=sigmoid(X*theta);

J=-1/m(y'*log(hTheta)+(1-y')*log(1-hTheta))+1/(2*m)*theta'*theta


提交了好几次总是有问题,终于发现问题出在grad上了,形式和线性回归的一样,但是hTheta的表达式变了

grad = X'* (hTheta-y)/m + lambda/m*theta;



one vs all

fmincg的用法

for c = 1:num_labels
[all_theta(c,:)] =  fmincg (@(t)(lrCostFunction(t, X, (y == c), lambda)), initial_theta, options);
end;



恩,顺便再添加一个fminunc的用法

options = optimset(‘GradObj’, ‘on’, ‘MaxIter’, ‘100’);
initialTheta = zeros(2,1); [optTheta, functionVal, exitFlag] ...
     = fminunc(@costFunction, initialTheta, options);


function [jVal, gradient]           = costFunction(theta)
jVal = (theta(1)-5)^2 + ...        (theta(2)-5)^2;
gradient = zeros(2,1);
gradient(1) = 2*(theta(1)-5); gradient(2) = 2*(theta(2)-5);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值