Advertisement
toweber

simple_neural_network_mlp_sklearn_regression_sine

Mar 26th, 2021 (edited)
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.50 KB | None | 0 0
  1. import os
  2. import ipdb
  3. import numpy as np
  4. import matplotlib.pyplot as plt
  5. from sklearn.neural_network import MLPRegressor
  6. from sklearn.metrics import accuracy_score
  7. from sklearn.preprocessing import OneHotEncoder, MinMaxScaler, StandardScaler
  8. from sklearn.metrics import mean_squared_error
  9. from sklearn import datasets
  10. from sklearn.model_selection import train_test_split
  11.  
  12. X = np.arange(0,1,0.01)
  13. Y = np.sin(2*np.pi*X)
  14.  
  15. # use the scaled input
  16.  
  17. scalerX = MinMaxScaler(feature_range=(-1,1))
  18. scalerY = MinMaxScaler(feature_range=(-1,1))
  19.  
  20. X_scaled = scalerX.fit_transform(X.reshape(-1,1))
  21. Y_scaled = scalerY.fit_transform(Y.reshape(-1,1))#.reshape(-1,1))
  22.  
  23. X = X_scaled
  24. Y = Y_scaled.reshape(1,-1)[0]
  25.  
  26. X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=0)
  27.  
  28.  
  29. clf = MLPRegressor(solver='sgd', hidden_layer_sizes=(5,3),
  30.                     activation='tanh',
  31.                     learning_rate='constant',
  32.                     learning_rate_init=0.1,
  33.                     tol=0.0001,
  34.                     max_iter=1000,
  35.                     batch_size=1,
  36.                     momentum=0,
  37.                     random_state=0)
  38.  
  39. # clf = MLPRegressor(solver='sgd', hidden_layer_sizes=(30,3),
  40. #                     activation='tanh',
  41. #                     learning_rate='constant',
  42. #                     learning_rate_init=0.1,
  43. #                     tol=0.0001,
  44. #                     max_iter=1000,
  45. #                     batch_size=1,
  46. #                     momentum=0,
  47. #                     random_state=0)
  48.  
  49.  
  50. clf.fit(X_train, Y_train)
  51. predictedY_train = clf.predict(X_train)
  52. mean_square_error_train = mean_squared_error(Y_train, predictedY_train)
  53. #similar a clf.score(X,Y)
  54.  
  55. predictedY_test = clf.predict(X_test)
  56. mean_square_error_test = mean_squared_error(Y_test, predictedY_test)
  57.  
  58. print("Mean_Square_Error for train set is: %f" %mean_square_error_train)
  59. print("Mean_Square_Error for test set is: %f" %mean_square_error_test)
  60.  
  61. # visualizar o número de iterações rodadas
  62. print("Number of iterations: %d" %clf.n_iter_)
  63.  
  64. #for i,x in enumerate(X):
  65. #    print("Input: %s \t Output: %s" %(x,clf.predict([x])[0]))
  66.  
  67. plt.plot(Y_train,label="Y for train set")
  68. plt.plot(predictedY_train,label="predicted Y for train set")
  69. plt.show()
  70.  
  71. plt.plot(Y_test,label="Y for test set")
  72. plt.plot(predictedY_test,label="predicted Y for test set")
  73. plt.show()
  74.  
  75.  
  76. predictedY_total = clf.predict(X)
  77. plt.plot(Y,label="Y total")
  78. plt.plot(predictedY_total,label="predicted Y for total set")
  79. plt.show()
  80.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement