Advertisement
toweber

simple_neural_network_mlp_sklearn_regression_regulation

Mar 26th, 2021 (edited)
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.43 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. data = datasets.load_diabetes()
  13.  
  14. X = data['data']
  15. Y = data['target']
  16.  
  17. #ipdb.set_trace()
  18.  
  19. # use and the scaled input the encoded output
  20.  
  21. scalerX = MinMaxScaler(feature_range=(-1,1))
  22. scalerY = MinMaxScaler(feature_range=(-1,1))
  23.  
  24. X_scaled = scalerX.fit_transform(X)
  25. Y_scaled = scalerX.fit_transform(Y.reshape(-1,1))
  26.  
  27. #ipdb.set_trace()
  28. X = X_scaled
  29. Y = Y_scaled #.reshape(1,-1)[0]
  30. X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=0)
  31.  
  32.  
  33. clf = MLPRegressor(solver='sgd', hidden_layer_sizes=(5,3),
  34.                     activation='tanh',
  35.                     learning_rate='constant',
  36.                     alpha=0.001,   # regularization, try 0, 0.01, 0.001, and see total weights
  37.                     learning_rate_init=0.1,
  38.                     n_iter_no_change=100, # default is 10
  39.                     tol=0.001,
  40.                     max_iter=1000,
  41.                     batch_size=1,
  42.                     momentum=0,
  43.                     random_state=0)
  44.  
  45. clf.fit(X_train, Y_train)
  46. predictedY_train = clf.predict(X_train)
  47. mean_square_error_train = mean_squared_error(Y_train, predictedY_train)
  48. #similar a clf.score(X,Y)
  49.  
  50. predictedY_test = clf.predict(X_test)
  51. mean_square_error_test = mean_squared_error(Y_test, predictedY_test)
  52.  
  53. print("Mean_Square_Error for train set is: %f" %mean_square_error_train)
  54. print("Mean_Square_Error for test set is: %f" %mean_square_error_test)
  55.  
  56. # visualizar os pesos
  57. print("Coefficients: %s" %clf.coefs_)
  58.  
  59.  
  60. # Somar todos os coeficientes:
  61. total_weights = 0
  62. for layer_weights in clf.coefs_:
  63.     total_weights += np.sum(np.abs(layer_weights))
  64. print("Total Weights: %f" %total_weights)
  65.  
  66. # visualizar o número de iterações rodadas
  67. print("Number of iterations: %d" %clf.n_iter_)
  68.  
  69. #for i,x in enumerate(X):
  70. #    print("Input: %s \t Output: %s" %(x,clf.predict([x])[0]))
  71.  
  72. plt.plot(Y_train,label="Y for train set")
  73. plt.plot(predictedY_train,label="predicted Y for train set")
  74. plt.show()
  75.  
  76. plt.plot(Y_test,label="Y for test set")
  77. plt.plot(predictedY_test,label="predicted Y for test set")
  78. plt.show()
  79.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement