Прогнозирование временных рядов с помощью LSTM с использованием CNTK

Я прочитал пост о прогнозировании временных рядов с помощью LSTM с использованием CNTK. Мне очень полезно лучше понять, как применять этот метод для решения других проблем. Это так просто реализовать сеть LSTM с использованием CNTK, только с парой строк кода.

model = Sequential (

  RecurrentLSTMLayer {$stateDim$, usePeepholes = true} : #first LSTM

  DenseLayer {$labelDim$, bias=false}                    # followed by an adaptor layer (from LSTN output size to the output or label size)

)

Я использовал программу предварительной обработки данных, включенную в этот пост, для генерации данных обучения и данных проверки. Я попытался подготовить данные своего домена, изучив файл обучающих данных примера. Я понимаю, что каждая строка состоит из 15 функций (окно ввода) и 12 меток (окно вывода вывода). Первые две строки данных показаны ниже.

1|i -0.117767881389987 -0.136789685972378 -0.157142990666484 -0.110810379516591 -0.0514608885500003 -0.0519359184751851 -0.093395333203464 -0.0466859579796335 -0.027053633818924 -0.0228974319964887 -0.0226106294034727 -0.0771583282775792 0.0326521764808296 0.0382623225371779 0.0179878482650109 |o -0.0419931078602005 -0.00707823233794613 -0.0326514790959216 0.107345877141872 0.0500879860433807 -0.0227185182952923 0.0354644105738453 0.0276734047763592 0.0830922226488839 0.0670409830200276 0.0983389666100694 0.101450282120106 |
1|i -0.142277570256967 -0.162630874951073 -0.11629826380118 -0.0569487728345894 -0.0574238027597742 -0.0988832174880532 -0.0521738422642226 -0.0325415181035131 -0.0283853162810779 -0.0280985136880618 -0.0826462125621683 0.0271642921962405 0.0327744382525887 0.0124999639804217 -0.0474809921447896 |o -0.0125661166225353 -0.0381393633805107 0.101857992857283 0.0446001017587916 -0.0282064025798814 0.0299765262892562 0.02218552049177 0.0776043383642948 0.0615530987354385 0.0928510823254802 0.0959623978355166 0.0630698500493061 |

Как упоминалось в посте, окна ввода (15 значений) и вывода (12 значений) перемещаются вперед на один шаг за раз (см. Рисунок ниже), поэтому данные в каждой строке должны просто сдвигаться на одно значение за раз, но они не Мне кажется, что это так. Кажется, между двумя строками нет совпадений значений.

Окна ввода и вывода для временного ряда

Мой вопрос заключается в том, как подготовить данные обучения и проверки для прогнозирования временных рядов с использованием CNTK LSTM?

1 ответ

Я изучил скрипт предварительной обработки данных (в R) и обнаружил, что значения в каждом окне ввода и вывода являются суммой плавного тренда и случайной составляющей (шума) как части нормализации данных.

Другие вопросы по тегам