Last active
August 29, 2015 14:07
-
-
Save pqcfox/94c22b81e0dd09dd23f5 to your computer and use it in GitHub Desktop.
A simple function from the Coursera Machine Learning class to calculate logistic regression cost.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function [J, grad] = costFunction(theta, X, y) | |
%COSTFUNCTION Compute cost and gradient for logistic regression | |
% J = COSTFUNCTION(theta, X, y) computes the cost of using theta as the | |
% parameter for logistic regression and the gradient of the cost | |
% w.r.t. to the parameters. | |
% Initialize some useful values | |
m = length(y); % number of training examples | |
% You need to return the following variables correctly | |
J = 0; | |
grad = zeros(size(theta)); | |
% ====================== YOUR CODE HERE ====================== | |
% Instructions: Compute the cost of a particular choice of theta. | |
% You should set J to the cost. | |
% Compute the partial derivatives and set grad to the partial | |
% derivatives of the cost w.r.t. each parameter in theta | |
% | |
% Note: grad should have the same dimensions as theta | |
% | |
n = size(X, 2); | |
J = 1/m * sum(-y .* log(sigmoid(X * theta)) - (1-y) .* log(1-sigmoid(X * theta))); | |
for i = 1:n, | |
grad(i) = 1/m * sum((sigmoid(X * theta) - y) .* X(:, i)); | |
end | |
% ============================================================= | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment