У меня есть следующий тип данных, я делаю прогнозы:
Input: 1 | 2 | 3 | 4 | 5
1 | 2 | 3 | 4 | 5
1 | 2 | 3 | 4 | 5
Output: 6
7
8
Я хочу предсказать по одному и передать его обратно на вход в качестве значения для последнего столбца. Я использую эту функцию, но она плохо работает:
def moving_window(num_future_pred):
preds_moving = []
moving_test_window = [test_X[0,:].tolist()]
moving_test_window = np.array(moving_test_window)
for j in range(1, len(test_Y)):
moving_test_window = [test_X[j,:].tolist()]
moving_test_window = np.array(moving_test_window)
pred_one_step = model.predict(moving_test_window[:,:,:])
preds_moving.append(pred_one_step[0,0])
pred_one_step = pred_one_step.reshape((1,1,1))
moving_test_window =
np.concatenate((moving_test_window[:,:4,:], pred_one_step), axis= 1)
return preds_moving
preds_moving = moving_window(len(test_Y))
Что я хочу:
Input: 1 | 2 | 3 | 4 | 5
1 | 2 | 3 | 4 | 6
1 | 2 | 3 | 4 | 17
Output: 6
17
18
В основном, чтобы сделать первый прогноз [1,2,3,4,5] --> 6
, а затем удалить последний столбец [5]
из следующих входных данных и добавлять прогнозируемое значение каждый раз.
Что он делает сейчас, он просто принимает все входные данные такими, какие они есть, и делает прогнозы для каждой строки. Любая идея приветствуется!