예제 #1
0
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
예제 #2
0
    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',