lrCostFunction.m:
b = sigmoid(X*theta);
J = -(1/m)*( (log(b'))*y + log(1-b')*(1-y) ) + (lambda/(2*m))*(sum(theta.^2)-theta(1)^2);
k = X'*(b-y);
grad(1) = (1/m)*k(1);
long = length(k);
k2 = (1/m) * (k(2:long,:)) + (lambda/m)*(theta(2:long,:));
grad(2:long,:) = k2;
oneVsAll.m:
initial_theta = zeros(n + 1, 1);
options = optimset('GradObj', 'on', 'MaxIter', 50);
for i = 1:num_labels<pre name="code" class="plain">z = X*all_theta'; %5000*10
[a, b] = max(z,[],2);
p = b;
[theta] = ... fmincg (@(t)(lrCostFunction(t, X, (y==i), lambda)), ... initial_theta, options); all_theta(i,:) = theta';end
z = X*all_theta'; %5000*10
[a, b] = max(z,[],2);
p = b;
X = [ones(m, 1) X]; %(5000*401)
X2 = sigmoid(X*Theta1'); %(5000*401) (25*401) ——>5000*25
X2 = [ones(m, 1) X2];
X3 = sigmoid(X2*Theta2'); %(5000*10)
[a, b] = max(X3,[],2);
p = b;