Как я могу расширить свой прогноз RNN более чем на 1 экземпляр?

#python #time-series #data-science #recurrent-neural-network

#python #временные ряды #наука о данных #рекуррентная нейронная сеть

Вопрос:

Я работаю над алгоритмом RNN для акций. У меня есть рабочая модель, однако я не могу расширить свой прогноз. Мои текущие y_test_pred результаты:

  [[0.4851049 ]
 [0.4911844 ]
 [0.47815242]
 [0.45527324]
 [0.42826247]
 [0.39239335]
 [0.38769957]
 [0.38067928]
 [0.39279276]
 [0.41096398]
 [0.4086497 ]
 [0.40941462]
 [0.4134215 ]
 [0.40007314]
 [0.38910034]
 [0.37119544]
 [0.37541446]
 [0.38887498]
 [0.40821275]
 [0.43625122]
 [0.46152377]
 [0.48250926]
 [0.50147206]
 [0.50959766]
 [0.52889514]
 [0.533771  ]
 [0.52254456]
 [0.51569027]
 [0.50156844]
 [0.49862108]
 [0.4835014 ]
 [0.47285616]
 [0.47734246]
 [0.49379078]
 [0.50275964]
 [0.50984645]
 [0.504373  ]
 [0.51286775]
 [0.5180755 ]
 [0.5197189 ]
 [0.5078519 ]
 [0.50017285]
 [0.49152452]
 [0.49047956]
 [0.48441952]
 [0.47528714]
 [0.46970117]]
  

с формой (47,1)

Я понимаю, что должен повторить эти следующие шаги с помощью другой модели, однако мне сложно ее настроить.

Я считаю, что код должен быть примерно таким:

 with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for iteration in range(int(n_epochs*train_set_size/batch_size)):
     x_batch, y_batch = get_next_batch(batch_size) # fetch the next training batch
     sess.run(training_op, feed_dict={X: x_batch, y: y_batch})
     if iteration % int(5*train_set_size/batch_size) == 0:
        mse_train = loss.eval(feed_dict={X: x_train, y: y_train})
        mse_valid = loss.eval(feed_dict={X: x_valid, y: y_valid})
        print('%.2f epochs: MSE train/valid = %.6f/%.6f'%(
            iteration*batch_size/train_set_size, mse_train, mse_valid))

y_train_pred = sess.run(outputs, feed_dict={X: x_train})
y_valid_pred = sess.run(outputs, feed_dict={X: x_valid})
y_test_pred = sess.run(outputs, feed_dict={X: x_test})
for i in range(5):
    #y_test_pred = y_test_pred[:1]
    last_number = sess.run(outputs, feed_dict={X: x_test[:1]})
    #y_test_pred = tf.make_ndarray(y_test_pred.shape)
    #y_test_pred.append(last_number)
    forcast = np.append(y_test_pred,last_number)
  

Комментарии:

1. Не могли бы вы, пожалуйста, объяснить, что вы подразумеваете под extend my forecast и какой код / архитектуру вы используете прямо сейчас?

2. В настоящее время результирующий ‘y_test_pred’ выдает мне следующую последовательность. Я хочу, чтобы он предоставил мне следующие 5 последовательностей.