Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. time X1 X2 X3 X4 PREDICT(t+60)
  2. 0 min 63 0 0 1 69
  3. 60 min 63 0 2 1 104
  4. 120 min 0 10 0 1 pred next value
  5.  
  6. x_test_n = np.flip(x_test_n, axis=0)
  7. curr_frame = x_test_n[0]
  8. predicted = []
  9. newaxis=[]
  10. for i in range(len(x_test_n)):
  11. predicted.append(model.predict(curr_frame[newaxis,:])[0,0])
  12. curr_frame = curr_frame[1:]
  13. curr_frame = np.insert(curr_frame, [num_time_steps-1], predicted[-1], axis=0)
  14.  
  15. data= pd.DataFrame(data,columns=['X1','X2','X3','X4'])
  16. data.columns = ['X1', 'X2', 'X3','X4']
  17. pd.options.display.float_format = '{:,.0f}'.format
  18. data = data.dropna ()
  19. y=data['Y'].astype(int)
  20. cols=['X1', 'X2', 'X3','X4']
  21. x=data[cols].astype(int)
  22.  
  23. data=data.values
  24. scaler_x = preprocessing.MinMaxScaler(feature_range =(0, 1))
  25. x = np.array(x).reshape ((len(x),4 ))
  26. x = scaler_x.fit_transform(x)
  27. scaler_y = preprocessing.MinMaxScaler(feature_range =(0, 1))
  28. y = np.array(y).reshape ((len(y), 1))
  29. y = scaler_y.fit_transform(y)
  30.  
  31. train_end = 80
  32. x_train=x[0: train_end ,]
  33. x_test=x[train_end +1: ,]
  34. y_train=y[0: train_end]
  35. y_test=y[train_end +1:]
  36. x_train=x_train.reshape(x_train.shape +(1,))
  37. x_test=x_test.reshape(x_test.shape + (1,))
  38.  
  39. num_time_steps=3
  40. model = Sequential()
  41. model.add(LSTM(4, return_sequences=True,input_shape=(num_time_steps,x_train_n.shape[2]))) # returns a sequence of vectors of dimension 32
  42. model.add(LSTM(8, return_sequences=True)) # returns a sequence of vectors of dimension 32
  43. model.add(LSTM(8)) # return a single vector of dimension 32
  44. model.add(Dense(1))
  45.  
  46.  
  47. batchsize = 1
  48. model.compile(loss="mean_squared_error",optimizer="adam")
  49. history = model.fit(x_train,y_train, batch_size = batchsize, nb_epoch=30,validation_data=(x_test, y_test),shuffle =True)
  50.  
  51. model.reset_states()
  52. x_test_n = np.flip(x_test_n, axis=0)
  53. curr_frame = x_test_n[0]
  54. predicted = []
  55. newaxis=[]
  56. for i in range(len(x_test_n)):
  57. predicted.append(model.predict(curr_frame[newaxis,:])[0,0])
  58. curr_frame = curr_frame[1:]
  59. curr_frame = np.insert(curr_frame, [num_time_steps-1], predicted[-1], axis=0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement