Example #1
0
 def predict(self, data, gap=0, predtill=1):
     assert predtill - 1 <= gap
     true = data[:, -predtill:, :]
     pred = []
     varm = VAR(data[0, :-gap - 1, :])
     fitted = varm.fit()
     pred = varm.predict(fitted.params,
                         start=data.shape[1] - gap - 2,
                         end=data.shape[1] - 1)[gap + 1 - predtill:gap + 1]
     pred = np.expand_dims(np.array(pred), axis=0)
     mae = np.mean(np.abs(pred - true))
     mape = np.mean(np.abs(pred - true) / true) * 100
     return mae, mape, pred
Example #2
0
def var(data, gap=0, predtill=1):
    assert predtill - 1 <= gap
    true = data[:, -predtill:, :]
    pred = []
    # varm = VAR(data[0,:-1,:])
    varm = VAR(data[0, :-gap - 1, :])
    fitted = varm.fit()
    # print("Lag", fitted.k_ar)
    print("Coefficients", fitted.params.shape)
    pred = varm.predict(fitted.params,
                        start=data.shape[1] - gap - 2,
                        end=data.shape[1] - 1)[gap + 1 - predtill:gap + 1]
    print(pred.shape)
    pred = np.expand_dims(np.array(pred), axis=0)
    mae = np.mean(np.abs(pred - true))
    mape = np.mean(np.abs(pred - true) / true) * 100
    return mae, mape, pred
Example #3
0
#1010025

all_data_scaled_sorted = pd.concat([all_data_scaled,labels],axis=1,sort=False).sort_values(['galaxy','galactic year'])[['galaxy','galactic year','y']]

#%%
X_train_with_labels = pd.concat([X_train,labels],axis=1,sort=False).sort_values(['galaxy','galactic year'])[['galaxy','galactic year','y']]
# %%

predicted_data = pd.DataFrame([])
for galaxy in tqdm_notebook(X_test['galaxy'].unique(), desc='Galaxy Loop'):
    galaxy_data = X_train_with_labels[X_train_with_labels['galaxy']==galaxy]
    galaxy_data_to_predict = X_test[X_test['galaxy']==galaxy][['galaxy','galactic year']]

    model = GradientBoostingRegressor(n_estimators=300)
    model.fit(np.array(galaxy_data['galactic year']).reshape(-1,1),galaxy_data['y'])
    galaxy_data_to_predict['y'] = model.predict(np.array(galaxy_data_to_predict['galactic year']).reshape(-1,1))
    # trend_line = np.poly1d(np.polyfit(galaxy_data['galactic year'],galaxy_data['y'],deg=4))    
    # galaxy_data_to_predict['y'] = galaxy_data_to_predict['galactic year'].apply(lambda x: trend_line(x))
    

    eei_test = test_df[test_df['galaxy']==galaxy][['galactic year','existence expectancy index']]
    eei_test.fillna(method='ffill',axis=0,inplace=True)
    galaxy_data_to_predict['existence expectancy index'] = eei_test['existence expectancy index'].values

    predicted_data = pd.concat([predicted_data,galaxy_data_to_predict[['y','existence expectancy index']]])

    # data_to_plot = galaxy_data[['galactic year','y']]
    # data_to_plot = pd.concat([data_to_plot,galaxy_data_to_predict[['galactic year','y']]]).sort_values('galactic year')
    
    # plt.Line2D(xdata=data_to_plot['galactic year'],ydata=data_to_plot['y'])
    # plt.show()