机器学习2_逻辑回归和标准化的逻辑回归_AndrewNG

来源:互联网 发布:自从做了淘宝客服 编辑:程序博客网 时间:2024/05/16 01:37

1.在plotData.m中YOUR CODE后(以后的加入位置均是)加入:

% Find Indices of Positive and Negative Examples
pos = find(y==1); neg = find(y == 0);
% Plot Examples
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, ...
'MarkerSize', 7);
plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y', ...
'MarkerSize', 7);

2.在sigmoid.m加入:

g = 1.0 ./ (1.0 + exp(-z)); 

3.在命令窗口检验sigmoid函数

sigmoid(0)

结果为0.5

再试一个矩阵就可以submit。

4.在costFunction.m

加入

h = sigmoid(X * theta);  
J = (1.0/m) * sum(-y .* log(h) - (1.0 - y) .* log(1.0 - h));  
grad = (1.0/m) .* X' * (h - y); 

然后运行ex2.m,submit.

5.在predict.m

加入:

p = sigmoid(X* theta);  
index_1 = find(p > 0.5);  
index_0 = find(p <= 0.5);  
  
p(index_1) = ones(size(index_1));  
p(index_0) = zeros(size(index_0)); 

然后运行ex2.m,submit.

6.在costFunctionReg.m

加入


h = sigmoid(X * theta);  
 J = (1.0/m) * sum(-y .* log(h) - (1.0 - y) .* log(1.0 - h)) + lambda / (2 * m) * norm(theta
(2:end))^2;  
 
 reg = (lambda/m) .* theta;  
 reg(1) = 0;  
 grad = (1.0/m) .* X' * (h - y) + reg;  

其中norm是对向量theta的后面n维求模.

可以改变lambda的值得到不同的结果。

0 0
原创粉丝点击