Guest User

Untitled

a guest
Jun 24th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.61 KB | None | 0 0
  1. def train(X, y, W, b, tolerance = 1e-10):
  2. Jhist = []
  3. i = 1
  4. while True:
  5. m = y.size
  6.  
  7. z = X @ W + b
  8. a = sigmoid(z)
  9.  
  10. HessW = (1/m) * (a.T @ (1-a)) * (X.T @ X)
  11. gradW = (1/m) * (X.T @ (a-y))
  12.  
  13. secDer_b = (1/m) * (a.T @ (1-a))
  14. frstDer_b = (1/m) * np.sum(a-y)
  15.  
  16. W -= 0.00001*(np.linalg.inv(HessW) @ gradW)
  17. b -= 0.00001*(secDer_b/frstDer_b)
  18.  
  19. J = cost(X, y, W, b)
  20.  
  21. if i != 1 and abs(Jhist[-1] - J) < tolerance:
  22. print('converged!!!')
  23. break
  24.  
  25. Jhist.append(J)
  26.  
  27. if i%100 == 0:
  28. print("Iteration:: {} - Cost:: {}".format(i, J))
  29.  
  30. i += 1
  31.  
  32. return W, b, Jhist
Add Comment
Please, Sign In to add comment