Andrew Ng机器学习week3(Regularization)编程习题
1、plotData.m
function plotData(X, y)
figure; hold on;
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);
hold off;
end
2、sigmoid.m
function g = sigmoid(z)
g =
zeros(
size(z));
g =
1 ./ (
1 +
exp(-z))
end
3、costFunction.m
function [J, grad] = costFunction(theta, X, y)
m =
length(y);
J =
0;
grad =
zeros(
size(theta));
J = ((-
y' *
log(sigmoid(X * theta))) - (
1 - y)
' * log(1 - sigmoid(X * theta))) / m;
grad = (X' * (sigmoid(X * theta) - y)) ./ m;
end
4、predict.m
function p = predict(theta, X)
m =
size(X,
1);
p =
zeros(m,
1);
p =
floor(sigmoid(X * theta) .*
2)
end
5、costFunctionReg.m
function [J, grad] = costFunctionReg(theta, X, y, lambda)
m =
length(y);
J =
0;
grad =
zeros(
size(theta));
J = ((-
y' *
log(sigmoid(X * theta))) - (
1 - y)
' * log(1 - sigmoid(X * theta))) / m + (sum(theta .^ 2) - theta(1) ^ 2) * lambda / (2 * m);
grad(1) = (X(:, 1)' * (sigmoid(X * theta) - y)) ./ m;
for i =
2 :
size(theta)
grad(
i) = (X(:,
i)
' * (sigmoid(X * theta) - y)) ./ m + lambda * theta(i) / m
% =============================================================
end
转载请注明原文地址: https://ju.6miu.com/read-350022.html