Esempio n. 1
0
# K-Fold CV
kf = KFold(n_splits=2, random_state=None, shuffle=False)
# Load data and label
X, y = load_data()

acc = []
for i in range(10):
    acc_local = []  # To store accuracy of k times from k-Fold
    for train_index, test_index in kf.split(X):
        # Load train and test data and label
        train, train_label, test, test_label = X[train_index], y[
            train_index], X[test_index], y[test_index]

        # Param: X,Y,epoch=100,lr=0.0005
        net.fit(train, train_label, epoch=1, lr=0.0005)

        acc_fold = 0  # Counter for correct prediction

        for j in range(len(test)):
            to_feed = torch.tensor(test[j],
                                   dtype=torch.float64,
                                   requires_grad=True).cuda()
            pred = net(to_feed.float())[0]
            acc_fold += int((pred[0] < pred[1]) == int(
                test_label[j]))  # Accumulate # of correct prediction

        # Log accuracy of each fold
        acc_local.append(acc_fold / len(test))

    acc.append(np.average(acc_local))  # Accuracy of 1 epoch
Esempio n. 2
0
for i in dpp.outlier_dict.keys():
    dpp.DataStates[i] = Data(dpp.outlier_treatment(dpp.DataStates['Standardized_data'].df,forecastMeasure,outlier_type=i),forecastMeasure,m_count,m_perc,i_count,i_perc)
    dpp.imputation(dpp.DataStates[i].df,forecastMeasure,outlier_type=i)
    
l = set(dpp.DataStates.keys()) - set(['Standardized_data','Normal_Distribution','boxplot'])

d = {'Dataset':[],'Predictions':[]}
for i in range(n_preds):
    d['t+'+str(i+1)+' RMSE'] = list()

for i in l:
    rnn = RNN(dpp.DataStates[i].df.copy(),forecastMeasure,n_lag,n_preds,nvars)
    x, y, scaler = rnn.prepare_data(dpp.DataStates[i].df.copy())
    x_train,x_test = rnn.train_test_split(x,test_size=0.3)
    y_train,y_test = rnn.train_test_split(y,test_size=0.3)
    model = rnn.fit([10,10],x_train, y_train)
    forecasts = rnn.forecast(model, x_test)
    forecasts = rnn.inverse_transform(forecasts, scaler)
    actual = rnn.inverse_transform(y_test.values, scaler)
    rmse = rnn.evaluate_forecasts(y_test.values, forecasts)
    d['Dataset'].append(i)
    for i in range(n_preds):
        d['t+'+str(i+1)+' RMSE'].append(rmse[i])
    d['Predictions'].append(forecasts)
    
fdf = pd.DataFrame(d)
n = fdf[fdf['t+1 RMSE']==min(fdf['t+1 RMSE'])]['Dataset'].item()
rnn = RNN(dpp.DataStates[n].df.copy(),forecastMeasure,n_lag,n_preds,nvars)
x, y, scaler = rnn.prepare_data(dpp.DataStates[n].df.copy())
x_train,x_test = rnn.train_test_split(x,test_size=0.7)
y_train,y_test = rnn.train_test_split(y,test_size=0.7)