【Stanford Machine Learning Open Course】9. week3编程题解

这里是斯坦福大学机器学习网络课程的学习笔记。课程地址是:https://class.coursera.org/ml-2012-002/lecture/index

  
本周题目包括:
1. sigmoid 函数表达式
2. logistic 回归方法的成本函数
3. logistic 回归方法的梯度下降法
4. 二分类的预测函数
5. 正则化的logistic回归方法的成本函数
6. 正则化的logistic回归方法的梯度下降法
 
题解:
1. sigmoid 函数表达式
function g = sigmoid(z)
g = zeros(size(z))
; g=1./(1+power(e,-z)); end
2. logistic 回归方法的成本函数 & 3. logistic 回归方法的梯度下降法
function [J, grad] = costFunction(theta, X, y)
m = length(y)
; J = 0; grad = zeros(size(theta)); J=1/m*(-y'*log(sigmoid(X*theta))-(1-y)'*log(1-sigmoid(X*theta))); grad=1/m*((sigmoid(X*theta)-y)'*X)';

end

4. 二分类的预测函数

function p = predict(theta, X)

m = size(X, 1); % Number of training examples
p = zeros(m, 1);

admitted=find(sigmoid(X*theta)>=0.5);p(admitted)=1;

end
5. 正则化的logistic回归方法的成本函数 & 6. 正则化的logistice回归方法的梯度下降法
function [J, grad] = costFunctionReg(theta, X, y, lambda)

m = length(y); % number of training examples

J = 0;
grad = zeros(size(theta));

[J_normal, grad_normal] = costFunction(theta,X,y);
J = J_normal + lambda/(2*m)*(theta'*theta-theta(1)^2);
grad = grad_normal + lambda/m*theta;
grad(1) = grad(1)-lambda/m*theta(1);

end
原文地址:https://www.cnblogs.com/liyuxia713/p/2699787.html