Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. """
  2. Lab07 MLP
  3. Avlonitis Stefanos
  4. 164637
  5. """
  6. import pandas as pd
  7. import numpy as np
  8. from sklearn.model_selection import train_test_split
  9. from sklearn.neural_network import MLPRegressor
  10. from matplotlib.pyplot import plot,subplot
  11. from sklearn.metrics import mean_squared_error,mean_absolute_error
  12.  
  13. def regevaluate(t, predict, criterion):
  14. if(criterion=='mse'):
  15. return mean_squared_error(t,predict)
  16. else:
  17. return mean_absolute_error(t,predict)
  18.  
  19. data = pd.read_csv("I:\housing.data",header=None,sep="\s+").values
  20.  
  21. NoP = data.shape[0]
  22. NoA = data.shape[1]
  23.  
  24.  
  25. x = data[:,0:NoA-1]
  26. t = np.zeros(NoP)
  27.  
  28. t = (list(map(lambda d: d[NoA-1],data)))
  29.  
  30.  
  31. lowestMeanmse = 1000.0
  32. lowestMeanmae = 1000.0
  33.  
  34. lowestMaeN = 0.0
  35. lowestMaeN = 0.0
  36.  
  37. epochs = 50000
  38. for N in [5,10,20,30,40,50]:
  39. meanmae = 0.0
  40. meanmse = 0.0
  41. for i in range(1,10):
  42. xTrain, xTest, tTrain, tTest = train_test_split(x,t,test_size=0.1)
  43. model = MLPRegressor(hidden_layer_sizes=N,
  44. activation='relu',
  45. solver='adam',
  46. learning_rate='constant',
  47. max_iter=epochs,
  48. learning_rate_init=0.01)
  49. model.fit(xTrain,tTrain)
  50. predict = model.predict(xTest)
  51.  
  52. meanmse += regevaluate(tTest,predict,'mse')
  53. meanmae += regevaluate(tTest,predict,'mae')
  54.  
  55. meanmse/=9
  56. meanmae/=9
  57. if(lowestMeanmae>meanmae):
  58. lowestMeanmae = meanmae
  59. lowestMaeN = N
  60. if(lowestMeanmse>meanmse):
  61. lowestMeanmse = meanmse
  62. lowestMseN = N
  63.  
  64.  
  65. print("Mean MSE: {}, N: {}".format(lowestMeanmse,lowestMseN))
  66. print("Mean MAE: {}, N: {}".format(lowestMeanmae,lowestMaeN))
  67. print("-------------------------")
  68.  
  69.  
  70.  
  71. xTrain, xTest, tTrain, tTest = train_test_split(x,t,test_size=0.1)
  72. model = MLPRegressor(hidden_layer_sizes=lowestMseN,
  73. activation='relu',
  74. solver='adam',
  75. learning_rate='constant',
  76. max_iter=epochs,
  77. learning_rate_init=0.01)
  78. model.fit(xTrain,tTrain)
  79. predict = model.predict(xTest)
  80.  
  81. subplot(1,1,1)
  82. plot(predict,'r.',markersize=6)
  83. plot(tTest,'b-',markersize=6)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement