Guest User

Untitled

a guest
Oct 23rd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 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. const cost = (training,params) => {
  11. let sum = 0;
  12.  
  13. for (var i = 0; i < training.length; i++) {
  14. sum += Math.pow(hypothesis(training[i][0],params) - training[i][1], 2);
  15. }
  16. console.log(sum/(2*training.length))
  17. return sum / (2 * training.length);
  18. }
  19. // summed error needs to be generalized
  20. const summedError1 = (training,params) => {
  21. let sum1 = 0
  22. for(let i=0; i<training.length; i++){
  23. sum1 += hypothesis(training[i][0],params) - training[i][1]
  24. }
  25. return sum1 / training.length
  26. }
  27. const summedError2 = (training,params) => {
  28. let sum2 = 0
  29. for(let i=0; i<training.length; i++){
  30. sum2 += (hypothesis(training[i][0], params) - training[i][1]) * training[i][0]
  31. }
  32. return sum2/training.length
  33. }
  34. // generalized
  35. const summedError = (training,params) => {
  36. let sum = 0
  37. for(let i=0; i<training.length; i++){
  38.  
  39. }
  40. return sum / training.length
  41. }
  42.  
  43. // this function needs refactoring allow for multiple temp and param variables [i][j]
  44. const gradientDescent = (training, params, learningRate, iterations) => {
  45. let count = 0
  46. while (count < iterations) {
  47. let temp0 = params[0] - (learningRate * summedError1(training,params))
  48. let temp1 = params[1] - (learningRate * summedError2(training,params))
  49. params[0] = temp0
  50. params[1] = temp1
  51. count++
  52. cost(training,params)
  53. }
  54. console.log(params)
  55. }
  56. gradientDescent(training,[0,0],learningRate,1000)
Add Comment
Please, Sign In to add comment