plotData.m(图形绘制)
%进行二分类
pos=find(y==1);
neg=find(y==0);
%绘制录取与未录取图形
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, 'MarkerSize', 7);
plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y','MarkerSize', 7);
sigmoid.m(冲激函数)
g=1./(1+exp(-z));
costFunction.m(代价函数与梯度下降)
J = 1/m *(-y' * log(sigmoid(X*theta)) - (1-y)' * log(1 - sigmoid(X*theta)));
grad = 1/m * X' *(sigmoid(X*theta) - y);
costFunctionReg.m(正则化之后的代价函数与梯度下降)
J = 1/m *(-y' * log(sigmoid(X*theta)) - (1-y)' * log(1 - sigmoid(X*theta))) + (lambda/(2*m)) *sum(theta(2:size(theta,1),:) .^2);
%theta(1)无需进行惩罚,分开计算
grad1 = 1/m *X'(1,:) * (sigmoid(X*theta) - y);
grad2 = 1/m * [zeros(1,size(X',2)); X'(2:size(X',1),:)] *(sigmoid(X*theta) - y) + (lambda/m) * theta;
grad = [grad1;grad2(2:size(grad2,1),:)];