Example #1
0
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)
k = list(x_test.iloc[-1,:]) + list(y_test.iloc[-1,:])
model = rnn.fit([10,10],x_test, y_test)
forecasts = rnn.forecast(model, k[-n_lag:])
forecasts = rnn.inverse_transform(forecasts, scaler)[0].tolist()