прогнозирование временных рядов для прогнозирования цен (проблемы с прогнозами) - PullRequest
0 голосов
/ 01 ноября 2018

Я работаю над проектом по прогнозированию движения цены, и я застрял в прогнозах низкого качества.

На каждом временном шаге я использую LSTM для прогнозирования следующих 10 временных шагов. На входе - последовательность последних 45-60 наблюдений. Я проверил несколько разных идей, но все они, похоже, дают схожие результаты. Модель обучена минимизировать MSE.

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

Это результаты на данный момент:

1- Первая попытка использовала в качестве входных данных скользящее среднее из последних N шагов и прогнозировало скользящее среднее из следующих 10. В момент времени t я использую основную истинную цену и использую модель для прогнозирования t + 1 .... t + 10

Это результат

Прогнозирование скользящего среднего

При ближайшем рассмотрении мы видим, что происходит не так:

Предсказание кажется плоской линией. Не заботится о входных данных.

2) Вторая попытка была попытаться предсказать разницу, а не просто движение цены. На этот раз вместо того, чтобы быть X [t] (где X - моя входная матрица), будет X [t] -X [t-1]. Это не очень помогло. Сюжет на этот раз выглядит так:

Прогнозирование различий

Но при ближайшем рассмотрении, при составлении графика различий, прогнозы всегда в основном равны 0.

График различий

В этот момент я застрял здесь и пытаюсь попробовать наши идеи. Я надеялся, что кто-то с большим опытом в данных такого типа может указать мне правильное направление.

Использую ли я правильную цель для тренировки модели? Есть ли какие-либо подробности при работе с данными такого типа, которые мне не хватает? Существуют ли какие-то «хитрости», чтобы ваша модель не всегда предсказывала значения, аналогичные тем, которые она видела в последний раз? (Они подвергаются малой ошибке, но в этот момент они становятся бессмысленными).

По крайней мере, намек на то, где копать для дальнейшей информации, был бы очень признателен.

Спасибо!

1 Ответ

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

Использую ли я правильную цель для тренировки модели?

Да, но LSTM всегда очень сложны для прогнозирования временных рядов. И очень склонны к переоснащению по сравнению с другими моделями временного ряда.

Есть ли какие-либо подробности при работе с данными такого типа, которые мне не хватает?

Существуют ли какие-то "хитрости", чтобы ваша модель не всегда предсказывала значения, аналогичные тем, которые она видела в последний раз?

Я не видел ваш код или сведения о LSTM, который вы используете. Убедитесь, что вы используете очень маленькую сеть и избегаете перегрузки. Удостоверьтесь, что после того, как вы различаете данные - вы затем реинтегрируете их перед оценкой окончательного прогноза.

Трюк попытаться построить модель, которая прогнозирует на 10 шагов вперед напрямую, вместо того, чтобы строить модель на шаг впереди, а затем делать рекурсивный прогноз.

...