Advertisement
Pinkishu

Untitled

Apr 11th, 2014
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function computeRegression_v2()
  2. {
  3.     var theta
  4.     var sum = 0
  5.     for(i=0;i<d1.length;i++)
  6.     {
  7.         sum += (-d1[i][1])/(d1[i][0])
  8.     }
  9.     theta = sum / (-d1.length)
  10.  
  11.     return [[0,0],[200,200*theta]]
  12. }
  13.  
  14. function computeRegression_v1()
  15. {
  16.     //alert("a")
  17.     d2 = []
  18.     var sum = 0
  19.     var theta = 2
  20.     var lastSum = null
  21.     var dir = false
  22.     var mov = -1
  23.     while(true)
  24.     {
  25.         sum = 0
  26.         for(i = 0;i<d1.length;i++)
  27.         {  
  28.             var tx = theta * d1[i][0]
  29.             var ty = d1[i][1]
  30.             var err = Math.pow((tx-ty),2)
  31.             sum += err
  32.         }
  33.         sum = sum * (1/(2*d1.length))
  34.     //  if(prompt("Theta: "+ theta + " / Sum: "+sum)==null) {  break }
  35.         if(sum == 0 || lastSum==sum) { break }
  36.         if(lastSum==null)
  37.         {
  38.             lastSum = sum
  39.             theta -= 1
  40.             console.log("Reducing theta: "+theta)
  41.         }
  42.         else
  43.         {
  44.             if(sum<lastSum)
  45.             {
  46.                 theta += mov
  47.             }
  48.             else
  49.             {
  50.                 dir = !dir
  51.                 mov *= -0.5
  52.                 theta += mov
  53.                 console.log("Halving theta: "+theta)
  54.                 var diff = Math.abs(Math.abs(lastSum)-Math.abs(sum))
  55.                 if(diff<0.1)
  56.                 {
  57.                     break;
  58.                 }
  59.             }
  60.             lastSum = sum
  61.         }
  62.     }
  63.     return [[0,0],[200,200*theta]]
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement