def run_network(sklearn, NN, lmbd, eta, act_h, act_o, hn, epochs, tol, batch_size, n_categories, color_iter=0, length=1): costs = None if sklearn: if NN: # NN Regress using sklearn - Somewhat reasonable, needs tuning. mlpr = MLPRegressor(hidden_layer_sizes=hn, activation=act_h, solver="adam", alpha=lmbd, learning_rate_init=eta) mlpr.fit(XTrain, yTrain) yTrue, yPred = yTest, mlpr.predict(XTest) ypred = mlpr.predict(X) R2 = mlpr.score(XTest, yTrue.ravel()) MSE = 1.0 #Not implemented else: # Linear regression using Sklearn - Initial results prefer this mlpr = LinearRegression() mlpr.fit(XTrain, yTrain) yTrue, yPred = yTest, mlpr.predict(XTest) R2 = mlpr.score(XTest, yTrue.ravel()) MSE = 1.0 ypred = mlpr.predict(X) else: if NN: # My regression NN - Outputs 50 :) mlpr = NeuralNetwork(XTrain, yTrain.reshape(-1, 1), XTest, yTest.reshape(-1, 1), eta=eta, lmbd=lmbd, n_hidden_neurons=hn, act_h=act_h, act_o=act_o, epochs=epochs, tol=tol, batch_size=batch_size, nn_type="regression", cost="mse", n_categories=n_categories, length=length) costs, scores = mlpr.train() # Find full data prediction #mlpr.plot_costs(color_iter) # Plot cost mlpr.plot_scores(color_iter) # Plot scores MSE = scores[-1, 1, 0] R2 = scores[-1, 1, 1] # full prediction ypred = mlpr.predict_a_o(X) else: # Run my regression raise NotImplementedError("Insert lasso n stuff") return MSE, R2, ypred, costs, mlpr
parser.add_argument('--limit', type=int, default=-1, help='Restrict training to this many examples') args = parser.parse_args() fname_X = "pickled_files/training_data/sd_X.pkl" fname_Y = "pickled_files/training_data/sd_Y.pkl" data = Numbers(fname_X=fname_X, fname_Y=fname_Y) # Perform cross validation on each of the optimal models and show the accuracy mlpr = MLPRegressor(train_x=data.train_x[:args.limit], train_y=data.train_y[:args.limit], test_x=data.test_x, test_y=data.test_y) mlpr.train() # Store the trained model into the database model_db = ModelDatabase() model_db.load() model_db.store_cur_data( [data.params['days_out_prediction'], 'MLP Regressor'], columns=['num_days', 'type']) model_db.store_cur_data([ data.params, mlpr.params, len(data.train_x), len(data.test_x), len(data.train_x[0]) ], columns=[ 'X_params', 'model_params', 'num_train',