逻辑回归的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);