wk3 Multi-class Classification and Neural Networks
最近正在学习MOOC上的经典课程:Machine learning (by Andrew Ng), 具体课程链接:MACHINE LEARNING
根据进度将作业的关键代码部分贴上,仅供交流与讨论。
- lrCostFunction
h=sigmoid(X*theta);
J=sum(-y.*log(h)-(1-y).*log(1-h))/m + (lambda/(2*m))*sum(theta(2:end).^2);
grad(1)=(1/m)*(X(:,1).'*(h-y));
grad(2:end) =(1/m)*(X(:,2:end).'*(h-y))+lambda*theta(2:end)/m;
- oneVsAll
options = optimset('GradObj','on','Maxiter',50);
initial_theta = zeros(n+1,1);
for c= 1:num_labels
[all_theta(c,:)]=fmincg(@(t)(lrCostFunction(t,X,(y==c),lambda)),initial_theta,options);
end
- predictOneVsAll
[~, p] = max(X * all_theta.', [], 2);
- predict
a2=sigmoid(X*Theta1');
a2=[ones(size(a2,1),1) a2];
h=sigmoid(a2*Theta2');
[~,p]=max(h,[],2);
——转载请注明出处