Преобразование данных к скользящему окну

При решении некоторых задач, например, при прогнозировании временных рядов при помощи нейросети, требуется подавать на вход модели значения нескольких смежных отсчетов из исходного набора данных. Такой метод отбора данных называется скользящим окном (окно – поскольку выделяется только некоторый непрерывный участок данных, скользящее – поскольку это окно «перемещается» по всему набору). При этом эффективность реализации заметно повышается, если не выбирать данные каждый раз из нескольких последовательных записей, а последовательно расположить данные, относящиеся к конкретной позиции окна, в одной записи.

Значения в одном из полей записи будут относиться к текущему отсчету, а в других – смещены от текущего отсчета «в будущее» или «в прошлое». Таким образом, преобразование скользящего окна имеет два параметра:

глубина погружения – количество «прошлых» отсчетов, попадающих в окно;

горизонт прогнозирования – количество «будущих» отсчетов.


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

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

Обработка создает новые столбцы путем сдвига данных исходного столбца вниз и вверх (глубина погружения и горизонт прогноза).

1) У аналитика имеются данные о месячном количестве проданного товара за несколько лет. Ему необходимо, основываясь на этих данных, сказать, какое количество товара будет продано через неделю и через две.

Исходные данные по продажам находятся в файле Trade.txt.

Выполним в новом проекте импорт данных из файла, не забыв указать в Мастере, чтобы в качестве разделителя дробной и целой части была точка, а не запятая. Выполнив удаление аномалий и сглаживание (см. Лабораторную работу №1), получаем следующий результат (рис. 2.5).

2) Приведение данных к скользящему окну.

Запустим Мастер обработки, выберем в качестве обработчика

скользящее окно (рис. 2.6) и перейдем к следующему шагу.

В дальнейшем, используя обработчик Автокорреляция мы сможем убедиться в наличии годовой сезонности данных. Поэтому, строить прогноз на месяц вперед можно, основываясь на данных за 1, 2, 11 и 12 месяцев назад. Поэтому необходимо, назначив поле Количество используемым, выбрать глубину погружения 12. Тогда данные трансформируются к скользящему


окну так, что аналитику будут доступны все требуемые факторы для построения прогноза.

Рисунок 2.5 – Результат импорта

Рисунок 2.6 – Выбор обработчика Скользящее окно

3) Просмотреть полученные данные можно в виде таблицы (рис. 2.7).


Рисунок 2.7 – Результат обработки

Как видно, теперь в качестве входных факторов можно использовать Количество – 12, Количество – 11 – данные по количеству 12 и 11 месяцев назад (относительно прогнозируемого месяца) и остальные необходимые факторы. В качестве результата прогноза будет указан столбец Количество.

Результаты сохранить в файле L2_2.ded.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: