Прогнозирование временных рядов (DeepAR): результаты прогнозирования, по-видимому, имеют основной недостаток - PullRequest
0 голосов
/ 05 июля 2018

Я использую алгоритм DeepAR для прогнозирования хода ответов на опрос со временем. Я хочу, чтобы модель предсказывала следующие 20 точек данных в ходе опроса. Каждый опрос является временным рядом в моих данных обучения. Длина каждого временного ряда - это # ​​дней, в течение которых проводился опрос. Например, в приведенной ниже серии указывается, что опрос начался 29 июня 2011 года, а последний ответ был получен 24 июля 2011 года (25 дней - это продолжительность).

{"start":"2011-06-29 00:00:00", "target": [37, 41.2, 47.3, 56.4, 60.6, 60.6, 
61.8, 63, 63, 63, 63.6, 63.6, 64.2, 65.5, 66.1, 66.1, 66.1, 66.1, 66.1, 66.1, 
66.1, 66.1, 66.1, 66.1, 66.7], "cat": 3}

Как видите, значения во временном ряду могут оставаться неизменными или увеличиваться. Данные обучения никогда не будут указывать на тенденцию к снижению. Удивительно, но когда я генерировал прогнозы, я заметил, что прогнозы имеют тенденцию к снижению. Когда в данных об обучении нет тенденции к понижению, мне интересно, как модель могла бы это узнать. Мне кажется, это основной недостаток в прогнозах. Может кто-нибудь пролить свет на то, почему модель может вести себя таким образом? Я строю модель DeepAR с приведенными ниже гиперпараметрами. Модель была протестирована и RMSE составляет около 9. Поможет ли мне изменить какие-либо гиперпараметры? Любые рекомендации для этого.

time_freq= 'D',
context_length= 30,
prediction_length= 20,
cardinality= 8,
embedding_dimension= 30,
num_cells= 40,
num_layers= 2,
likelihood= 'student-T',
epochs= 20,
mini_batch_size= 32,
learning_rate= 0.001,
dropout_rate= 0.05,
early_stopping_patience= 10 

1 Ответ

0 голосов
/ 06 июля 2018

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

Все ваши гиперпараметры выглядят разумно, и трудно сказать, что можно улучшить, не зная больше о данных. Если у вас не так много временных рядов, вы можете попытаться увеличить количество эпох (возможно, попробовать несколько сотен) и увеличить число ранних остановок до 20–30.

...