Нейронные сети многошагового прогнозирования

Я работал с набором инструментов для нейронных сетей Matlab. Здесь я использую сеть NARX. У меня есть набор данных, состоящий из цен на объект, а также количества объекта, приобретенного за определенный период времени. По существу, эта сеть выполняет одношаговое предсказание, которое математически определяется следующим образом:

y(t)= f (y(t −1),y(t −2),...,y(t −ny),x(t −1),x(t −2),...,x(t −nx))

Здесь y(t) — цена в момент времени t, а x — сумма. Таким образом, входными функциями, которые я использую, являются цена и количество, а целью является цена в момент времени t+1. Предположим, у меня есть 100 записей таких транзакций, и каждая транзакция состоит из цены и суммы. Тогда по существу моя нейронная сеть может предсказать цену 101-й транзакции. Это отлично работает для одношаговых прогнозов. Однако, если я хочу сделать многошаговые прогнозы, скажем, я хочу предсказать 10 транзакций вперед (110-я транзакция), тогда я предполагаю, что я делаю одношаговый прогноз цены, а затем возвращаю его обратно в нейронную сеть. Я продолжаю делать это, пока не достигну 110-го предсказания. Однако в этом сценарии, после того как я предскажу 101-ю цену, я могу передать эту цену в нейронную сеть, чтобы предсказать 102-ю цену, однако я не знаю сумму объекта при 101-й транзакции. Как мне это сделать? Я думал о том, чтобы установить в качестве целей цены транзакций, которые на 10 транзакций опережают текущую, чтобы, когда я предсказывал 101-ю транзакцию, я, по сути, предсказывал цену 110-й транзакции. Является ли это жизнеспособным решением, или я делаю это совершенно неправильно. Заранее благодарю за любую помощь


person kushaldsouza    schedule 26.04.2012    source источник


Ответы (2)


Я предполагаю, что вы можете использовать отдельную нейронную сеть для прогнозирования временных рядов для x, чтобы получить от x (t + 1) до x (t + 10), а затем использовать эти значения для подачи другой ANN для прогнозирования y (t).

person kostas    schedule 26.04.2012

Подобно тому, что сказал Костас, когда у вас есть прогнозируемая цена 101, вы можете использовать все свои данные для прогнозирования суммы 101, затем использовать ее для прогнозирования цены 102, затем использовать цену 102 для прогнозирования суммы 102 и т. д. Однако, это усугубляет любую ошибку в ваших прогнозах для каждой переменной. Чтобы смягчить это, вы можете добавить несколько других функций, таких как сужающаяся скидка на прошлые значения или мера ошибки для использования в прогнозе (поиск обучение с разницей во времени для похожих идей в области обучения с подкреплением).

person wwwslinger    schedule 12.09.2013