
- •Оглавление
- •Введение
- •Импорт данных и способы визуализации
- •Обработка данных
- •Очистка данных
- •Восстановление пропущенных данных
- •Удаление аномалий
- •Спектральная обработка
- •Удаление шумов
- •Факторный анализ
- •Трансформация данных
- •Квантование
- •Группировка данных
- •Преобразование данных к скользящему окну
- •Примеры анализа данных
- •Прогнозирование умножения с помощью нейронных сетей
- •Классификация с помощью деревьев решений
- •Прогнозирование с помощью линейной регрессии
- •Кластеризация с помощью самоорганизующейся карты Кохонена
- •Поиск ассоциативных правил
- •Выявление дубликатов и противоречий
- •Автокорреляция
- •Прогнозирование временного ряда
- •Экспорт данных
Прогнозирование временного ряда
Задача оптимизации складских запасов (прогнозирование объема продаж на определенный период времени), задача предсказания стоимости акций на бирже, прогнозирование курса валют – задачи, требующие прогнозирование результата на определенное время вперед, основываясь на данных за предыдущие промежутки времени. Прогнозировать на несколько шагов вперед имеет смысл только данные, содержащие временной ряд.
В Deductor имеется соответствующий инструмент «Прогнозирование». Данный инструмент появляется в списке мастера обработки только после построения какой-либо из следующих моделей прогноза: нейросеть, линейная регрессия, дерево решений и т.д.
На основе данных о месячном количестве проданного товара за несколько лет, аналитику необходимо предсказать какое количество товара будет продано через неделю, через две недели.
В предыдущем примере мы импортировали файл «Trade.txt», используем этот же файл и для прогнозирования.
После импорта данных воспользуемся визуализатором диаграмма для их просмотра.
На диаграмме видно, что данные содержат аномалии (выбросы) и шумы, которые усложняют задачу выявления определенных тенденций.
Воспользуемся инструментами Deductor, позволяющими удалить аномалии и сгладить данные перед прогнозированием. В мастере обработки выберем парциальную обработку и, пропустив второй шаг который, как известно, отвечает за восстановление пропущенных данных, перейдем к третьему шагу мастера обработки. На данном шаге парциальной обработки предлагается удалить аномалии, чем мы и воспользуемся. Выберем в качестве поля обработки «Количество» и укажем «Редактирование аномальных значений» со степенью подавления «Малая».
Следующий шаг позволяет провести спектральную обработку. В качестве обрабатываемого столбца выбираем опять столбец «Количество» и указываем способ обработки «Вычитание шума» (степень вычитания – «Малая»). Запускаем процесс обработки и полученный результат просмотрим на диаграмме.
На диаграмме видно, что данные сгладились, аномалии и шумы исчезли. Проявилась тенденция.
В предыдущих примерах прогнозирования мы располагали входными факторами и выходными. В данном случае у нас одно поле, а строить прогноз на будущее необходимо, основываясь на данных за прошлые периоды. Предполагается, что количество продаж на следующий месяц зависит от количества продаж за предыдущие месяцы. В данной модели прогноза в качестве входных факторов могут выступать продажи за текущий месяц, за месяц ранее и т.д., а результатом должны быть продажи за следующий месяц. Из сказанного следует, что необходимо трансформировать данные к скользящему окну.
В мастере обработки запустим инструмент скользящее окно.
Ранее выяснилось (авторегрессионый анализ), что обрабатываемые данные имеют годовую сезонность. Основываясь на полученных результатах, построим прогноз на три месяца вперед, учитывая данные текущего и предыдущих месяцев. Для этого укажем, что поле «Количество» используемое, и выберем глубину погружения 12 и горизонт прогноза 1.
Результат импорта просмотрим в визуализаторе таблица.
Теперь мы располагаем полями «Количество-12», «Количество-11», …, - данные за 12 месяцев, которые подходят для обучения нейросети в качестве входных факторов, и полем «Количество+1», обладающим всеми свойствами выходного фактора.
Выбрав в мастере обработки инструмент «Нейросеть», перейдем к построению модели прогноза. На втором шаге укажем в качестве входных поля «Количество-11», «Количество-10», «Количество-1» и «Количество», а в качестве выходного - «Количество+1». Остальные поля сделаем информационными.
На третьем шаге в мастере обработки оставляем все по умолчанию.
В настройках структуры нейронной сети убедимся, что она состоит из одного скрытого слоя, который содержит один нейрон, и перейдем к следующему шагу.
При выборе алгоритма и настройке его параметров установим в качестве алгоритма обучения Resilient Propagation с параметрами по умолчанию.
После всех вышеуказанных настроек перейдем к процессу обучения и по его окончании выберем визуализаторы «Диаграмма» и «Диаграмма рассеяния». В мастере настройки выберем в качестве полей для отображения выберем «Количество+1» и «Количество+1_OUT», реальное и спрогнозированное значение.
В результате мы получим два графика.
На диаграмме рассеивания можно увидеть качество обучения.
Для построения прогноза необходимо выбрать в мастере обработки инструмент «Прогнозирования», который появился после обучения нейросети.
На втором шаге мастера обработки данного инструмента предполагается настроить связи столбцов для прогнозирования временного ряда – откуда брать данные для столбцов при очередном шаге прогноза. На рисунке видно, что мастер сам правильно настроил все переходы, осталось только указать горизонт прогноза равный трем и для наглядности добавить к прогнозу исходные данные, установив в мастере соответствующий флажок.
После построения прогноза необходимо в качестве визуализатора выбрать диаграмму прогноза. При настройке столбцов диаграммы прогноза укажем в качестве отображаемого столбца «Количество+1», а в качестве подписи оси Х определим столбец «Шаг прогноза».
На диаграмме прогноза видно поведение количества продаж на один, два или три месяца вперед, полученного на основе данных об объеме продаж за предыдущие месяцы.