Andrew Ng在coursera上的机器学习公开课 自己写的部分编程答案,留作记录,欢迎交流
sigmoid.m
a=ones(size(z))
g=a./(a.+exp(-z))
costFunction.m
s=sigmoid(sum(theta'.*X,2));
J=-1/m* sum(( y.*log(s)+ (ones(size(y)) -y).*log(ones(size(s))-s)),1);
grad=1/m* sum((s-y).*X,1)';
costFunctionReg.m
theta2=theta;
theta2(1,1)=0;
s=sigmoid(sum(theta'.*X,2));
J=-1/m* sum(( y.*log(s)+ (ones(size(y)) -y).*log(ones(size(s))-s)),1)+ lambda/(2*m)*sum(theta2.^2);
grad=1/m* sum((s-y).*X,1)' + lambda/m*theta2;
predict.m
s=sigmoid(sum(theta'.*X,2));
for i =1:m
if s(i,1) >=0.5
p(i, 1)=1;
else
p(i , 1)=0;
endif
endfor