예제 #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