Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.92 KB | None | 0 0
  1. import random
  2. import matplotlib.pyplot as pl
  3. import numpy as np
  4. import math
  5.  
  6. A = 1.
  7. B = 0.5
  8. sigma = 0.3
  9. xmax = 4.
  10. numberOfClassEl = 200
  11. data = []
  12. sumx =0
  13. sumg = 0
  14. sumxg =0
  15. sumxx =0
  16. for rowNum in range(numberOfClassEl):
  17.  X = random.random()*xmax
  18.  sumx = sumx + X
  19.  G = A+B*X+random.gauss(0,sigma)
  20.  sumg = sumg + G
  21.  sumxg = X*G + sumxg
  22.  sumxx = X*X + sumxx
  23.  data.append([X, G])
  24.  
  25.  
  26. b = (sumxg/200 - sumx/200*sumg/200)/(sumxx/200 - (sumx/200)**2)
  27. a = -b*sumx/200 + sumx/200
  28. print(a, b)
  29.  
  30. MSE = 0
  31. i = 0
  32. for i in range(numberOfClassEl):
  33.  MSE += (data[i][1] - (a+ b*data[i][0]))**2
  34. MSE = MSE / 200
  35. i = 0
  36. for i in range(numberOfClassEl):
  37.  MAE = abs(data[i][1] - (a + b*data[i][0]))
  38. MAE = MAE / 200
  39. RMSE = math.sqrt(MSE)
  40. print(MSE, RMSE, MAE)
  41.  
  42. f = np.linspace(0, 4, 200)
  43. pl.plot(f, a+b*f)
  44.  
  45. pl.scatter([data[i][0] for i in range(len(data))],[data[i][1] for i in range(len(data))],)
  46. pl.savefig('genLRdata.png')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement