Advertisement
Guest User

Untitled

a guest
Jan 26th, 2020
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. # Insert code here
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4.  
  5. def mserror(yþjalfun, ytest):
  6. r = len(ytest)
  7. return np.dot(yþjalfun-ytest, yþjalfun-ytest)/r
  8.  
  9. def sigmaVal(X,y,sigma,n):
  10. r = len(X)
  11. perm = np.random.permutation(len(y))
  12. Xperm = X[perm]
  13. Yperm = y[perm]
  14.  
  15. skref = np.int(np.floor(r/n))
  16.  
  17. w = np.zeros(len(sigma))
  18. for i in range(0, len(sigma)):
  19. d = sigma[i]
  20. error = 0
  21. for j in np.arange(0,r,skref):
  22. XTimi = Xperm[j:j+skref]
  23. YTimi = Yperm[j:j+skref]
  24. XAfram = np.concatenate((Xperm[0:j], Xperm[j+skref:r]), axis=None)
  25. YAfram = np.concatenate((Yperm[0:j], Yperm[j+skref:r]), axis=None)
  26.  
  27. yþjalfun = np.zeros(len(XTimi))
  28. poly_predict(XTimi, poly_fit(XAfram, YAfram, q))
  29.  
  30. for k in range(0, len(XTimi)):
  31. yþjalfun[k] = lwr_predict(XAfram, YAfram, XTimi[k], d)
  32.  
  33. error = error + mserror(yþjalfun, YTimi)
  34. w[i] = error/n
  35. return w
  36.  
  37. def qVal(X,y,fylki,n):
  38. r = len(X)
  39. perm = np.random.permutation(len(y))
  40. Xperm = X[perm]
  41. Yperm = y[perm]
  42.  
  43. skref = np.int(np.floor(r/n))
  44. w = np.zeros(len(fylki))
  45. for i in range(0,len(fylki)):
  46. q = fylki[i]
  47. error = 0
  48. for j in np.arange(0,r,skref):
  49. XTimi = Xperm[j:j+skref]
  50. YTimi = Yperm[j:j+skref]
  51. XAfram = np.concatenate((Xperm[0:j], Xperm[j+skref:r]), axis=None)
  52. YAfram = np.concatenate((Yperm[0:j], Yperm[j+skref:r]), axis=None)
  53.  
  54. yþjalfun = np.zeros(len(XTimi))
  55. yþjalfun = poly_predict(XTimi, poly_fit(XAfram, YAfram, q))
  56.  
  57. error = error + mserror(yþjalfun, YTimi)
  58. w[i] = error/n
  59. return w
  60.  
  61. # Setjum inn gildi og teiknum:
  62.  
  63. sigma = np.sort(np.random.uniform(0.05,0.25,7))
  64. fylki = np.array([2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])
  65.  
  66. data = np.genfromtxt('artificial.txt', delimiter=',', skip_header=1)
  67. n = data.shape[0]
  68. y = data[0:1000,-1]
  69. X = data[0:1000,0:-1]
  70.  
  71.  
  72. w1 = sigmaVal(X,y,sigma,n)
  73. w2 = qVal(X,y,fylki,n)
  74.  
  75. plt.scatter(sigma,w1,c='r')
  76. plt.plot(sigma,w1,c='r')
  77. plt.xlabel('Sigma')
  78. plt.ylabel('MSError')
  79. plt.show()
  80.  
  81. plt.scatter(fylki,w1,c='r')
  82. plt.plot(fylki,w1,c='r')
  83. plt.xlabel('Q')
  84. plt.ylabel('MSError')
  85. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement