Как получить данные в правильной форме для подачи в слой LSTM в кератах для прогнозирования последовательности в последовательности - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть следующий фрейм данных для временного ряда, где SETTLEMENTDATE - индекс. Я хочу взять первую строку, то есть 2018-11-01 14:30:00 и значения T_1, T_2, T_3, T_4, T_5, T_6 в качестве последовательности и прогнозировать последовательность DE_1, DE_2, DE_3, DE_4.

Я использую кераты для Sequence для последовательности временных рядов, используя LSTM. Я попытался взять T_1 до T_6 в качестве входного кадра данных 'X' и от DE_1 до DE_4 в качестве выходного кадра данных 'y'. Я изменил его, используя X = np.array(X) y = np.array(y), а затем X = X.reshape(4,6,1) и y = y.reshape(4,4,1) для подачи на batch_input_shape(), но это не работает.

Как получить данные в правильной форме для подачи в слой LSTM?

                      T_1     T_2     T_3     T_4     T_5     T_6    DE_1    DE_2    DE_3    DE_4
SETTLEMENTDATE                                          
2018-11-01 14:30:00 1645.82 1623.23 1619.09 1581.94 1538.20 1543.48 1624.23 1722.85 1773.77 1807.04
2018-11-01 15:00:00 1628.60 1645.82 1623.23 1619.09 1581.94 1538.20 1722.85 1773.77 1807.04 1873.53
2018-11-01 15:30:00 1624.23 1628.60 1645.82 1623.23 1619.09 1581.94 1773.77 1807.04 1873.53 1889.06
2018-11-01 16:00:00 1722.85 1624.23 1628.60 1645.82 1623.23 1619.09 1807.04 1873.53 1889.06 1924.57

1 Ответ

0 голосов
/ 09 ноября 2018

LSTM принимает два аргумента: input_shape и batch_input_shape. Разница заключается в том, что input_shape не содержит размер пакета, а batch_input_shape - это полная форма ввода, включая размер пакета.

Слой LSTM является рекуррентным слоем, поэтому он ожидает трехмерного ввода (batch_size, timesteps, input_dim). Вот почему правильная спецификация - input_shape=(6, 1) или batch_input_shape=(BATCH_SIZE, 6, 1), где BATCH_SIZE - размер вашей партии.

Надеюсь, это поможет:)

...