Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import ipdb
- import numpy as np
- import matplotlib.pyplot as plt
- from sklearn.neural_network import MLPRegressor
- from sklearn.metrics import accuracy_score
- from sklearn.preprocessing import OneHotEncoder, MinMaxScaler, StandardScaler
- from sklearn.metrics import mean_squared_error
- from sklearn import datasets
- from sklearn.model_selection import train_test_split
- data = datasets.load_diabetes()
- X = data['data']
- Y = data['target']
- #ipdb.set_trace()
- # use and the scaled input the encoded output
- scalerX = MinMaxScaler(feature_range=(-1,1))
- scalerY = MinMaxScaler(feature_range=(-1,1))
- X_scaled = scalerX.fit_transform(X)
- Y_scaled = scalerX.fit_transform(Y.reshape(-1,1))
- #ipdb.set_trace()
- X = X_scaled
- Y = Y_scaled #.reshape(1,-1)[0]
- X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=0)
- clf = MLPRegressor(solver='sgd', hidden_layer_sizes=(5,3),
- activation='tanh',
- learning_rate='constant',
- alpha=0.001, # regularization, try 0, 0.01, 0.001, and see total weights
- learning_rate_init=0.1,
- n_iter_no_change=100, # default is 10
- tol=0.001,
- max_iter=1000,
- batch_size=1,
- momentum=0,
- random_state=0)
- clf.fit(X_train, Y_train)
- predictedY_train = clf.predict(X_train)
- mean_square_error_train = mean_squared_error(Y_train, predictedY_train)
- #similar a clf.score(X,Y)
- predictedY_test = clf.predict(X_test)
- mean_square_error_test = mean_squared_error(Y_test, predictedY_test)
- print("Mean_Square_Error for train set is: %f" %mean_square_error_train)
- print("Mean_Square_Error for test set is: %f" %mean_square_error_test)
- # visualizar os pesos
- print("Coefficients: %s" %clf.coefs_)
- # Somar todos os coeficientes:
- total_weights = 0
- for layer_weights in clf.coefs_:
- total_weights += np.sum(np.abs(layer_weights))
- print("Total Weights: %f" %total_weights)
- # visualizar o número de iterações rodadas
- print("Number of iterations: %d" %clf.n_iter_)
- #for i,x in enumerate(X):
- # print("Input: %s \t Output: %s" %(x,clf.predict([x])[0]))
- plt.plot(Y_train,label="Y for train set")
- plt.plot(predictedY_train,label="predicted Y for train set")
- plt.show()
- plt.plot(Y_test,label="Y for test set")
- plt.plot(predictedY_test,label="predicted Y for test set")
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement