Guest User

Untitled

a guest
Oct 23rd, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. const training = [
  2. [0,3], [1,6], [2,8], [3,7], [9, 100]
  3. ]
  4.  
  5. // alpha
  6. const learningRate = 0.05
  7.  
  8. const hypothesis = (x,params) => params[1] * x + params[0]
  9.  
  10.  
  11. const cost = (training,params) => {
  12. let sum = 0;
  13.  
  14. for (var i = 0; i < training.length; i++) {
  15. sum += Math.pow(hypothesis(training[i][0],params) - training[i][1], 2);
  16. }
  17. console.log(sum/(2*training.length))
  18. return sum / (2 * training.length);
  19. }
  20.  
  21. const summedError1 = (training,params) => {
  22. let sum1 = 0
  23. for(let i=0; i<training.length; i++){
  24. sum1 += hypothesis(training[i][0],params) - training[i][1]
  25. }
  26. return sum1 / training.length
  27. }
  28. const summedError2 = (training,params) => {
  29. let sum2 = 0
  30. for(let i=0; i<training.length; i++){
  31. sum2 += (hypothesis(training[i][0], params) - training[i][1]) * training[i][0]
  32. }
  33. return sum2/training.length
  34. }
  35.  
  36. const gradientDescent = (training, params, learningRate, iterations) => {
  37. let count = 0
  38. while (count < iterations) {
  39. let temp0 = params[0] - (learningRate * summedError1(training,params))
  40. let temp1 = params[1] - (learningRate * summedError2(training,params))
  41. params[0] = temp0
  42. params[1] = temp1
  43. count++
  44. cost(training,params)
  45. }
  46. console.log(params)
  47. }
  48. gradientDescent(training,[0,0],learningRate,1000)
Add Comment
Please, Sign In to add comment