- •Системи підтримки прийняття рішень методичні вказівки
- •Частина 1
- •Содержание
- •1 Лабораторная работа № 1. Создание хранилищ данных. Olap – технология анализа данных 14
- •2 Лабораторная работа № 2. Прогнозирование с помощью нейронных сетей в программе Deductor 43
- •2.3 Контрольные вопросы 59
- •3 Лабораторная работа № 3. Знакомство с Neural Network
- •4 Рекомендованная литература 78 Введение в сппр
- •1 Лабораторная работа № 1 Тема: Создание хранилища данных. Olap – технология анализа данных.
- •1.1 Аналитическая платформа Deductor
- •1.2 Хранилища данных – подготовка данных для анализа
- •Принципы организации хранилища:
- •1.3 Описание бизнес-задачи по созданию аналитической отчетности аптечной сети
- •1.4 Создание хранилища данных в системе Deductor
- •1.5 Анализ данных с помощью кросс-таблиц и визуализации
- •1.5.2 Срезы из хранилища данных и olap кубы
- •1.5.3 Кросс-диаграмма
- •1.5.4 Фильтрация данных в кубе
- •1.6 Задание к лабораторной работе
- •1.7 Контрольные вопросы
- •2 Лабораторная работа № 2 Тема: Нейронные сети. Прогнозирование с помощью нейронной сети в программе Deductor
- •2.1 Нейронные сети: основные понятия
- •2.1.1 Искусственный нейрон и нейронная сеть
- •2.1.2 Обучение
- •2.1.3. Нейронные сети обратного распространения
- •2.2 Прогнозирование с помощью нейронных сетей в Deductor
- •2.2.1 Исходные данные
- •2.2.2 Расчет автокорреляции столбцов
- •2.2.3 Удаление аномалий и сглаживание
- •2.2.4 Скользящее окно 12 месяцев назад
- •2.2.5 Обучение нейросети
- •2.2.6 Построение прогноза
- •2.2.7 Результат
- •2.2.8 Выводы
- •2.3 Контрольные вопросы
- •2.4 Рынок нейропакетов
- •3 Лабораторная работа №3 Тема: зНакомство с neural network toolbox пакета mAtlab
- •3.1 Нейронные сети: графический интерфейс пользователя
- •3.1.1 Управляющие элементы nnTool
- •3.1.3 Разделение линейно-неотделимых множеств
- •Пример 3.2. Пусть требуется создать нейронную сеть, выполняющую логическую функцию "исключающее или".
- •3.1.4 Задача аппроксимации
- •Пример 3.3. Необходимо выполнить аппроксимацию функции , где , а n - число точек функции.
- •3.2 Функции Matlab для работы с нейронными сетями
- •1) Линейная функция активации purelin.
- •2) Логистическая функция активации logsig.
- •3) Создание новой нейронной сети и ее обучение
- •3.3 Задание к лабораторной работе
- •3.4. Контрольные вопросы
- •4 Литература
2.2 Прогнозирование с помощью нейронных сетей в Deductor
Прогнозирование результата на определенное время вперед, основываясь на данных за прошедшее время, – задача, встречающаяся довольно часто. К примеру, перед большинством торговых фирм стоит задача оптимизации складских запасов, для решения которой требуется знать, что и сколько должно быть продано через неделю и т.п., задача предсказания стоимости акций какого-нибудь предприятия через день и т.д. и другие подобные вопросы. Deductor Studio предлагает для этого инструмент "Прогнозирование".
Прогнозирование появляется в списке Мастера обработки только после построения какой-либо модели прогноза: нейросети, линейной регрессии и т.д. Прогнозировать на несколько шагов вперед имеет смысл только временной ряд (к примеру, если есть данные по недельным суммам продаж за определенный период, можно спрогнозировать сумму продаж на две недели вперед). Поскольку при построении модели прогноза необходимо учитывать много факторов (зависимость результата от данных день, два, три, четыре назад), то методика имеет свои особенности. Покажем ее на примере.
Рисунок 2.6 – Сценарий прогнозирования нейронными сетями
2.2.1 Исходные данные
У аналитика имеются данные о помесячном количестве проданного товара за несколько лет. Ему необходимо, основываясь на этих данных, определить, какое Количество товара будет продано через месяц и через два.
Исходные данные по продажам находятся в файле "Trade.txt". Выполним импорт данных из файла, не забыв указать в Мастере, чтобы в качестве разделителя дробной и целой частей была точка, а не запятая. После загрузки данных построим график (рис.2.7).
Рисунок 2.7 – Временной ряд исходных данных
2.2.2 Расчет автокорреляции столбцов
Важным фактором для анализа временного ряда и прогноза является определение сезонности. Как видно, не каждый аналитик сможет судить о сезонности по этим данным, поэтому необходимо воспользоваться автокорреляцией. Для этого откроем Мастер обработки, выберем в качестве обработки автокорреляцию и перейдем на второй шаг Мастера. В нем необходимо настроить параметры столбцов. Укажем поле "Дата (Год + Месяц)" неиспользуемым, а поле "Количество" используемым (ведь необходимо определить сезонность количества продаж). Предположим, что сезонность, если она имеет место, не больше года. В связи с этим зададим Количество отсчетов равным 15 (тогда будет искаться зависимость от месяца назад, двух, ..., пятнадцати месяцев назад). Количество отсчетов ставится больше 12 для того, чтобы убедиться, что на 12 месяцев приходится пик коэффициента автокорреляции, а далее следует его спад.
Также должен стоять флажок "Включить поле отсчетов набор данных". Он необходим для более удобной интерпретации автокорреляционного анализа.
Перейдем на следующий шаг Мастера и запустим процесс обработки. По окончанию результаты удобно анализировать как в виде таблицы, так и в виде диаграммы (рис.2.8). После обработки были получены два столбца – "Лаг" (благодаря установленному флажку в Мастере) и "Количество" - результат автокорреляции.
Видно, что вначале корреляция равна единице – так как значение зависит само от себя. Далее зависимость убывает, и затем виден пик зависимости от данных 12 месяцев назад. Это как раз и говорит о наличии годовой сезонности.
Рисунок 2.8 – Функция автокорреляции временного ряда