Лекция 9
Прогнозирование с
помощью нейронных сетей
Нейронные
сети - это очень мощный и гибкий механизм прогнозирования. При
определении того, что нужно прогнозировать, необходимо указывать переменные,
которые анализируются и предсказываются. Здесь очень важен требуемый уровень
детализации. На используемый уровень детализации влияет множество факторов:
доступность и точность данных, стоимость анализа и предпочтения пользователей
результатов прогнозирования. В ситуациях, когда наилучший набор переменных неясен,
можно попробовать разные альтернативы и выбрать один из вариантов, дающий
наилучшие результаты. Обычно так осуществляется выбор при разработке
прогнозирующих систем, основанных на анализе исторических данных.
Второй важный
этап при построении нейросетевой прогнозирующей системы - это определение
следующих трех параметров: периода прогнозирования, горизонта прогнозирования и
интервала прогнозирования. Период прогнозирования - это основная единица
времени, на которую делается прогноз. Горизонт прогнозирования - это число
периодов в будущем, которые покрывает прогноз. То есть, может понадобиться
прогноз на 10 дней вперед, с данными на каждый день. В этом случае период -
сутки, а горизонт - 10 суток. Наконец, интервал прогнозирования - частота, с
которой делается новый прогноз. Часто интервал прогнозирования совпадает с
периодом прогнозирования. Выбор периода и горизонта прогнозирования обычно
диктуется условиями принятия решений в области, для которой производится
прогноз. Выбор этих двух параметров - едва не самое трудное в нейросетевом
прогнозировании. Для того чтобы прогнозирование имело смысл, горизонт
прогнозирования должен быть не меньше, чем время, необходимое для реализации
решения, принятого на основе прогноза. Таким образом, прогнозирование очень сильно
зависит от природы принимаемого решения. В некоторых случаях, время, требуемое
на реализацию решения, не определено, например, как в случае поставки запасных
частей для пополнения запасов ремонтных предприятий. Существуют методы работы в
условиях подобной неопределенности, но они повышают вариацию ошибки
прогнозирования. Поскольку с увеличением горизонта прогнозирования точность
прогноза, обычно, снижается, часто можно улучшить процесс принятия решения,
уменьшив время, необходимое на реализацию решения и, следовательно, уменьшив
горизонт и ошибку прогнозирования.
В некоторых
случаях не так важно предсказание конкретных значений прогнозируемой
переменной, как предсказание значительных изменений в ее поведении. Такая
задача возникает, например, при предсказании момента, когда текущее направление
движения рынка (тренд) изменит свое направление на противоположное.
Точность
прогноза, требуемая для конкретной проблемы, оказывает огромное влияние на
прогнозирующую систему. Также огромное влияние на прогноз оказывает обучающая
выборка.
Первое, с чем
сталкивается пользователь любого нейропакета - это необходимость подготовки
данных для нейросети. На практике именно предобработка данных может стать
наиболее трудоемким элементом нейросетевого анализа. Причем, знание основных
принципов и приемов предобработки данных не менее, а может быть даже более
важно, чем знание собственно нейросетевых алгоритмов. Последние, как правило,
уже "зашиты" в различных нейроэмуляторах, доступных на рынке. Сам же
процесс решения прикладных задач, в том числе и подготовка данных, целиком
ложится на плечи пользователя.
Рассмотрим
задачу прогнозирования объема продаж товаров предприятия. Среда является
недетерминированной, так как обычные методы не позволяют со сто процентной
уверенностью сказать, что будет в следующий момент времени и выявить все
факторы, которые влияют на прогнозируемую величину практически невозможно
(можно только ограничить набор факторов). Имеется следующий набор финансовых
индикаторов:
Деятельность
предприятия:
·
история продаж (количество, суммы);
·
история состояния склада;
·
показатели рекламной активности.
Внешние факторы:
·
прайс – листы конкурентов;
·
состояние рынка;
·
инфляция;
·
курсы доллара, евро и т. д.;
·
фондовые индексы (РТС, NASDAQ, Dow Jones и другие).
В результате комплексных исследований были
выявлены вторичные факторы, оказывающие влияние на объем продаж предприятия,
которые необходимо учитывать. Эти показатели представлены в таблице 1 (взята из диссертации Бычкова А.). Как
видно из таблицы, перечисленные параметры имеют различную значимость, значения
этих параметров имеют разную природу и добываются из различных источников. В
результате содержательного анализа перечисленных параметров выявлено, что
некоторые из них невозможно включить в модель из-за невозможности получения
данных, а отдельные не оказывают сильного влияния на динамику модели и, поэтому
их можно без существенной потери точности исключить из модели.
Таблица 1
Вторичные параметры используемые для принятия решений
Независимые
переменные
|
Значимость
|
1.Концентрация
|
++++
|
2.
Состояние склада
|
++++
|
3.
Экономия от масштаба
|
++
|
4.
Дифференциация продукта
|
+++
|
5.
Интенсивность рекламы
|
+++
|
6.
Отношение активы - объем производства
|
++
|
7. Рост.
|
+++
|
8.
Диверсификация
|
++
|
9.
Географическое размещение.
|
+
|
10. Риск
|
++++
|
11.
Экспорт
|
+
|
12. Импорт
|
+
|
13.
Рыночная доля
|
+++
|
14.
Концентрация покупателей
|
+
|
15.
Интенсивность исследований и разработок
|
+
|
16.
Стратегические группировки
|
+
|
Следует отметить, что сама история продаж
предприятия дает для обучения нейросети примерно 60 % необходимой информации
(на основании опыта автора).
Задача
прогнозирования объема продаж предприятия обладает теми особенностями, которые
делают целесообразным использование нейросетевых методов моделирования и, в
частности, топологии «внутренний учитель»:
а) таблица данных может иметь небольшой размер;
б) в таблице данных могут присутствовать пропуски данных;
в) в данных возможны искажения («шум»);
г) необходима возможность адаптации модели при поступлении новых
данных;
д) трудно получить линейную алгебраическую модель;
е) большое количество позиций номенклатуры.
Общий алгоритм прогнозирования с помощью
нейронной сети
Алгоритм
состоит из следующих пунктов:
·
получение временного ряда с интервалом в
выбранную временную итерацию;
·
заполнение «пробелов» в истории;
·
сглаживание ряда методом скользящих средних (или
другим);
·
получение ряда относительного изменения прогнозируемой
величины;
·
формирование таблицы «окон» с глубиной
погружения временных интервалов;
·
добавление к таблице дополнительных данных
(например, изменение величины за предыдущие годы);
·
шкалирование;
·
определение обучающей и валидационной выборок;
·
подбор параметров нейросети;
·
обучение нейросети;
·
проверка работоспособности нейросети в реальных
условиях.
Поясним термин
«таблицы окон». Данные необходимо преобразовать по специальной схеме. Сначала
преобразуем полученный временный ряд в ряд приращений прогнозируемой величины,
т. е. будем прогнозировать изменение величины, а не абсолютные значения ряда.
Затем выберем глубину погружения, т.е. количество временных интервалов, по
которым мы будем прогнозировать следующий. Возьмем глубину погружения равной 4,
т.е. прогнозирование величины на следующую итерацию будет осуществляться по
результатам четырех предыдущих итераций. Далее следует преобразовать величину к
следующему виду:
Таблица
4.1
Первый
вариант «окна» данных
Hist1
|
Hist2
|
Hist3
|
Hist4
|
Hist0
|
D-1
|
D-2
|
D-3
|
D-4
|
D
|
D-2
|
D-3
|
D-4
|
D-5
|
D-1
|
D-3
|
D-4
|
D-5
|
D-6
|
D-2
|
…
|
…
|
…
|
…
|
…
|
Первые четыре
колонки являются входами нейросети, последняя – выход, т. е. на основе
предыдущих значений изменения величины прогнозируется следующее значение ряда.
Таким образом, мы получаем так называемое «скользящее окно», в котором
представлены данные за пять недель. Окно можно двигать по временной оси и
изменять его ширину. Чтобы учесть предыдущие годы и учесть возможные сезонные
зависимости добавим еще один столбец в выборку, который показывает изменение величины
в прошлый год за тот же период.
Таблица 4.2
Второй вариант «окна»
данных
LastY
|
Hist1
|
Hist2
|
Hist3
|
Hist4
|
Hist0
|
L
|
D-1
|
D-2
|
D-3
|
D-4
|
D
|
L-1
|
D-2
|
D-3
|
D-4
|
D-5
|
D-1
|
L-2
|
D-3
|
D-4
|
D-5
|
D-6
|
D-2
|
…
|
…
|
…
|
…
|
…
|
…
|
Таким образом,
готовится обучающая выборка и именно в таком виде предоставляются данные для
последующего анализа. Можно не ограничиваться только прошлым годом, а подавать
данные за несколько предыдущих лет, но следует учитывать, что сеть в таком
случае разрастается, что иногда приводит к плохим результатам.
К недостаткам
прогнозирования с помощью нейронных сетей можно отнести следующее: длительное
время обучения, проблема переобучения, трудность определения положения
обучающей выборки и значащих входов.