Skip to content

Instantly share code, notes, and snippets.

@JerryZhong
Forked from marcelcaraciolo/log_regression.py
Created February 2, 2013 12:11
Show Gist options
  • Select an option

  • Save JerryZhong/4697044 to your computer and use it in GitHub Desktop.

Select an option

Save JerryZhong/4697044 to your computer and use it in GitHub Desktop.
def sigmoid(X):
'''Compute the sigmoid function '''
#d = zeros(shape=(X.shape))
den = 1.0 + e ** (-1.0 * X)
d = 1.0 / den
return d
def compute_cost(theta, X, y):
'''
Comput cost for logistic regression
'''
#Number of training samples
theta.shape = (1, 3)
m = y.size
h = sigmoid(X.dot(theta.T))
J = (1.0 / m) * ((-y.T.dot(log(h))) - ((1.0 - y.T).dot(log(1.0 - h))))
return - 1 * J.sum()
def compute_grad(theta, X, y):
#print theta.shape
theta.shape = (1, 3)
grad = zeros(3)
h = sigmoid(X.dot(theta.T))
delta = h - y
l = grad.size
for i in range(l):
sumdelta = delta.T.dot(X[:, i])
grad[i] = (1.0 / m) * sumdelta * - 1
theta.shape = (3,)
return grad
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment