Поздравляем с Новым Годом!
   
Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XLIX Международной научно-практической конференции «Естественные и математические науки в современном мире» (Россия, г. Новосибирск, 12 декабря 2016 г.)

Наука: Информационные технологии

Секция: Системный анализ, управление и обработка информации

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Бильгаева Л.П., Власов К.Г. ПРОГНОЗИРОВАНИЕ ПРОДАЖ В СРЕДЕ MATLAB // Естественные и математические науки в современном мире: сб. ст. по матер. XLIX междунар. науч.-практ. конф. № 12(47). – Новосибирск: СибАК, 2016. – С. 64-76.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

ПРОГНОЗИРОВАНИЕ ПРОДАЖ В СРЕДЕ MATLAB

Бильгаева Людмила Пурбоевна

магистрант, Восточно-Сибирский государственный университет технологий и правления,

РФ, Республика Бурятия, г. Улан-Удэ

Власов Константин Геннадьевич

магистрант, Восточно-Сибирский государственный университет технологий и правления,

РФ, Республика Бурятия, г. Улан-Удэ

 

FORECASTING SALES IN MATLAB

Lyudmila Bilgaeva

ph.D., Associate Professor, East Siberia state university of technology and management,

Russia, Republic of Buryatia, Ulan-Ude

Konstantin Vlasov

master’s student, East Siberia state university of technology and management,

Russia, Republic of Buryatia, Ulan-Ude

 

АННОТАЦИЯ

Работа посвящена прогнозированию продаж в среде моделирования MATLAB методом нейронных сетей. В качестве исходных используются реальные данные ИП «Черныш».

В работе выполнен обзор методов прогнозирования. На их основе был выбран метод нейронных сетей. Разработан и реализован алгоритм решения задачи прогнозирования в среде MATLAB. Проведены вычислительные эксперименты.

ABSTRACT

The work is devoted to forecasting sales in the simulation environment MATLAB by neural network method. We used real data from SP “Chernysh”.

The paper gives an overview of forecasting methods. Based on them the neural network method is selected. We developed and implemented an algorithm for solving the problem of forecasting in the MATLAB environment. We performed computational experiments.

 

Ключевые слова: методы прогнозирования, метод нейронных сетей, среда моделирования MATLAB, обучение нейронной сети.

Keywords: forecasting methods, neural network method, MATLAB environment, neural network training.

 

Введение. В современном мире, с постоянно меняющимися экономическими условиями, спросом и предложениями, невозможно заниматься бизнесом на основе лишь накопленного собственного опыта. Следует анализировать текущее состояние рынка, тенденции его развития прогнозировать возможные его изменения, а также успешность своей деятельности в будущем.

Компания ИП «Черныш» занимается продажей сим-карт и устройств-модемов YOTA и существует на рынке более двух лет. Компания стремительно расширяется, открываются новые точки продаж, на текущий момент их стало двадцать. Для сохранения темпов развития требуется поддержание стабильного роста товарооборота. Как правило, эффективность торговой точки зависит от множества факторов, в том числе и скрытых. Поэтому возникает проблема учета всех возможных факторов, влияющих на результат деятельности каждой торговой точки, а также иметь краткосрочный прогноз продаж. Это позволит уловить возможные отрицательные тенденции и подготовить комплекс мер по их предотвращению. Решить эту проблему можно путем применения интеллектуального анализа данных. Это одно из современных направлений анализа данных, которое включает решение различных задач таких, как классификация, кластеризация, прогнозирование, ассоциация, визуализация.

В данной работе решается задача прогнозирования показателей продаж ИП «Черныш» методом нейронных сетей в среде моделирования MATLAB.

1.  Обоснование и выбор метода прогнозирования и среды разработки

Задача прогнозирования является одной из наиболее важных задач, применяемых в различных сферах человеческой деятельности. Среди распространенных методов, используемых для решения этой задачи, можно выделить статистические методы и методы Data Mining. К статистическим методам относятся авторегрессия, метод регрессионного анализа, метод максимального правдоподобия, экстраполяция врменных рядов. Среди методов Data Mining можно выделить нейронные сети, деревья решений, генетический алгоритм, метод опорных векторов и другие.

Основным недостатком статистических методов является усреднение значений, что приводит к потере информативности данных. Альтернативой для решения задачи прогнозирования является использование методов Data Mining, среди которых можно выделить метод искусственных нейронных сетей.

В таблице 1 представлен сравнительный анализ методы прогнозирования по таким характеристикам как точность, трудоемкость, быстродействие и популярность, которые предложены в [1; 3].

Таблица 1.

Сравнительный анализ методов прогнозирования

Методы прогнозирования

Точность

Трудоемкость

Быстродействие

Популярность

Нейронные сети

высокая

очень высокая

очень низкое

средняя

Генетический алгоритм

средняя

высокая

низкое

средняя

Метод опорных векторов

средняя

высокая

среднее

средняя

CART

средняя

высокая

среднее

средняя

Деревья решений

низкая

высокая

высокое/

среднее

высокая/

средняя

Экстраполяция временных рядов

высокая

высокая

среднее

низкая

Регрессионный анализ

средняя

низкая

высокое

средняя

Авторегрессия

средняя

низкая

среднее

средняя

Метод максимального правдоподобия

низкая

низкая/средняя

высокое

низкая

 

 

Анализ таблицы 1 показал, что наибольший интерес по точности вызывают методы нейронных сетей и временные ряды, но сложны в реализации. По данной характеристике методы регрессионного анализа и максимального правдоподобия являются приемлемыми, но уступают по точности. Исходя из того, что метод нейронных сетей позволяет найти скрытые зависимости между показателями и получить наиболее точный прогноз, он становится более предпочтительным.

Поскольку метод нейронных сетей является трудоемким в реализации, то для его применения следует выбрать готовые программные решения, которых в настоящее время существует достаточно много. К ним можно отнести, например, Microsoft Analysis Services, SAS Business Intelligence, Microsoft BI Solution builder, Oracle Data Mining Suite, Intersystems Cache DeepSee, Oracle Crystal Ball, SPSS, MATLAB [2; 5–10]. Выбор программного решения для использования метода нейронных сетей был выполнен по следующим критериям: обработка онлайн данных, простота использования, скорость работы, хорошая документированность. В таблице 2 представлен сравнительный анализ программных решений по этим критериям. Знаком «+» отмечены программные средства, обладающие соответствующим критерием, в противном случае – знаком «–».

Таблица 2.

Сравнительный анализ программных средств

Программные решения

Обработка онлайн данных

Простота использования

Скорость работы

Документиро-

ванность

SAS Business Intelligence

-

-

+

+

Microsoft BI Solution builder

-

+

+

-

Oracle Data Mining Suite

-

-

+

+

SPSS

-

+

+

-

Microsoft SQL Server Analysis Services

+

+

-

+

Oracle Crystal Ball

-

+

-

+

Cache DeepSee

+

-

+

-

MATLAB

-

+

+

+

 

 

В процессе анализа существующих решений было выявлено, что среда моделирования MATLAB является наиболее подходящим средством ввиду ее простоты в использовании, высокой скорости работы, а также наличия большого количества методических материалов по ее использованию, что очень ценно для потенциальных пользователей.

2.  Математическая модель нейронной сети

Модель искусственного нейрона

Нейронные сети основаны на концепции искусственного нейрона, модель которого представлена на рисунке 1.

 

Рисунок 1. Модель искусственного нейрона

 

Модель искусственного нейрона состоит из трех основных элементов: синапсов, сумматора, функции активации [4].

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

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

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

Здесь x1xn – множество входных сигналов поступает на вход искусственного нейрона. Эти входные сигналы соответствуют сигналам, приходящим в синапсы биологического нейрона. Каждый сигнал умножается на соответствующий вес w1, …, wn и поступает на суммирующий блок å. Суммирующий блок, соответствующий телу биологического элемента, складывает взвешенные входы алгебраически, создавая выход Y, то есть

.                                       (1)

Далее Y поступает на вход функции активации, определяя окончательный сигнал возбуждения или торможения нейрона на выходе, то есть

).

В качестве функции активации используется различные функции, чаще всего используется логистическая функция или сигмоид вида:

                                       (2)

Модель нейронной сети MATLAB

Нейронная сеть, реализованная в среде моделирования MATLAB для решения задачи прогнозирования, представляет собой трехслойный персептрон, схема которого представлена на рисунке 2.

 

Рисунок 2. Схема трехслойного персептрона

 

Здесь b – это множество входов, w – множество весов, знак «+» – сумматор. Сеть состоит из двух входов, двух выходов и трех слоев, в каждом слое функция активации и количество нейронов различны. В первом и третьем слое количество нейронов равно количеству входов. Во втором слое (скрытом) находится десять нейронов. Нейроны первого слоя настроены на гиперболическую функцию активации вида:

                            (3)

Для нейронов второго слоя выбрана логарифмическая функция активации:

                                     (4)

Нейроны третьего слоя настроены на линейную функцию активации, которая не изменяет выходной сигнал и имеет вид:

                                              (5)

Таким образом, на вход нейронной сети поступает сигнал x. Сумматор «+» умножает каждый вход bi на вес wi и суммирует взвешенные входы. Затем значение пропускается через функцию активации соответствующего слоя и рассчитывается выход. Далее происходит корректировка весов с помощью метода обратного распространения ошибки и после чего итерация повторяется до тех пор, пока не будет достигнута заданная точность либо не будет исчерпано количество итераций [6].

Метод обучения нейронной сети

Обучение нейронной сети выполняется методом обратного распространения ошибки. В процессе обучения происходит такая подстройка ее весов, чтобы некоторое множество входов приводило к требуемому множеству выходов. При этом предполагается, что для каждого входного множества существует парное ему целевое множество, задающий требуемый выход. Вместе они образуют обучающую пару.

На каждой итерации изменение веса производится методом градиентного спуска по формуле 7:

                (6)

Для ограничения пространства поиска при обучении ставится задача минимизации целевой функции ошибки НС, которая находится по методу наименьших квадратов по формуле 6:

                                (7)

где: yj – значение j-го выхода нейронной сети;

dj – целевое значение j-го выхода;

p – число нейронов в выходном слое.

Комбинация метода наименьших квадратов с методом градиентного спуска называется алгоритмом Левенберга-Марквардта, который и используется в среде MATLAB [7].

Полный алгоритм обучения нейронной сети (НС) состоит из пяти шагов.

  1. Подать на вход НС один из входных сигналов и определить значения выходов нейронов нейронной сети.
  2. Рассчитать для выходного слоя нейронной сети и рассчитать изменения весов выходного слоя n (6).
  3. Рассчитать соответственно и  для остальных слоев НС, n = N-1..1 (6).
  4. Скорректировать все веса нейронной сети по формуле 6.
  5. Если ошибка по формуле 7 существенна, то перейти на шаг 1.

Настройка нейронной сети

Настройки нейронной сети в среде MATLAB осуществлялась вводом следующих команд:

  • создание сети, выбор количества слоев и количества нейронов в слое [2 10 2], определение функции активации для каждого слоя

Net=newff(minmax (P), [2 10 2],{ 'tansig', 'logsig', 'purelin' });

  • ограничение итераций обучения, определяемое количеством эпох

Net.trainParam.epochs = 1000;

  • запуск этапа тренировки, где Net – тип сети обучения, P – входные сигналы, T – обучающая выборка

Net = train(Net,P,T);

  • выбор метода корректировки весов (нахождения ошибки) – квадратичное отклонение

Net.performFcn='sse';

  • расчет значений с 1–115 дни (обучающая выборка) для проверки точности модели

Y = sim(Net,P);

  • прогнозирование для входных сигналов P1{116-120;116-120} – матрица 2х5

Y1 = sim(Net,P1);

  • построение графика для рассчитанной выборки Y и подрисовка спрогнозированных значений. По оси Y – значения показателей, по оси X – дни

plot(P,Y,'*',P1,Y1,'o').

На рисунке 3 представлены параметры модели нейронной сети в MATLAB. Параметры gradient, mu показывают изменения значений градиента функции и математического ожидания соответственно при каждой итерации. А параметр val fail показывает количество итераций, при которых ошибка была меньше заданной.

3.  Результаты экспериментов

В задаче прогнозирования использовались статистические данные за четыре месяца в точке продаж «Роял Парк» ИП «Черныш». Это экономические показатели «количество проданных голосовых/планшетных сим-карт» и «количество проданных модемов», всего 115 показателей. Необходимо спрогнозировать продажи на пять дней с 116 по 120 день. В процессе решения задачи прогнозирования в среде моделирования MATLAB были получены следующие результаты (рис. 4). На рисунке представлены графики продаж сим-карт и модемов и их прогноз.

 

Рисунок 3. Параметры модели нейронной сети

 

Фактические данные обозначены символом «звездочка», а прогнозные – символом «кружок». Анализ графика показывает, что после сильного падения показателя «количество проданных сим-карт», в ближайшей перспективе, результативность продаж начнет расти. Однако показатель «количество проданных модемов», сохранит отрицательную динамику. Это свидетельствует о необходимости проведения маркетинговых мероприятий по повышению продаж. Наличие разрывов обусловлено резким изменением количества продаж, которое, возможно, связанно с нарушением времени работы точки, либо ремонтными работами. Также видно, что на 86 день продаж при минимальном количестве проданных сим-карт наблюдается рост количества продаж модемов. Это может быть обусловлено проведением промо-акции.

На рисунке 5 указана зависимость величины ошибки от количества итераций.

 

Рисунок 4. Результаты прогнозирования

 

Рисунок 5. График зависимости ошибки обучения от количества эпох

 

Из графика видно, что с каждой следующей итерацией значение ошибки уменьшается. Для 1000 эпохи значение ошибки составляет 2.04*10-5.

На графике, представленном на рисунке 6, показано распределение величин относительно прямых регрессии (fit – линия регрессии на основе эмпирических данных, Y=T – на основе рассчитанных после обучения сети), а также зависимость эмпирических (т. е. целевых) данных Target от выходных данных Output. Целевые данные, представленные в модели массивом T, используются для обучения. Выходные данные сети Output, представленные массивом Y, рассчитываются по обученной сети и служат для проверки точности модели.

 

Рисунок 6. Зависимость прямых регрессии, полученных на основе эмпирических и рассчитанных данных

 

Коэффициент корреляции R равен 0,9162, что говорит о сильной связи между переменными, что свидетельствует о высокой точности построенной нейронной сети. Таким образом, прогноз, выполненный с помощью данной сети, является достоверным. В дальнейшем ее можно использовать для решения задачи прогнозирования.

Заключение. Выполнен прогноз продаж на пять дней и проведен анализ фактических и прогнозных данных на 116–120 дни. Результативность точки продаж «Роял Парк» по показателю «количество проданных модемов»

доказывает высокую точность прогноза, а по показателю «количество проданных сим-карт» отличалась незначительно, что свидетельствует о достаточно качественном прогнозе. Таким образом, прогнозирование в среде MATLAB с помощью нейронных сетей представляет собой очень удобный инструментарий, который может помочь в управлении бизнес-процессом.

 

Список литературы:

  1. Горелова Г.В., Захарова Е.Н., Гинис Л.А. Когнитивный анализ и моделирование устойчивого развития социально-экономических систем. – Ростов н/Д: Изд-во Рост. ун-та, 2005. – 288 с.
  2. Макленнен Дж. Microsoft SQL Server 2008: Data mining – интеллектуальный анализ данных. – СПб.: изд-во БХВ-Петербург, 2009. – 700 с.
  3. Прогнозирование и планирование в условиях рынка: Учеб. Пособие для вузов. / Под ред. Т.Г. Морозовой, А.В. Пикулькина. – М.: ЮНИТИ–ДАНА, 2001. – 318 с.
  4. Хайкин С. Нейронные сети. – М.: Изд-во «Вильямс», 2006. – 1104 с.
  5. Intersystems Cache DeepSee. / – [Электронный ресурс]. – Режим доступа: URL: http://www.intersystems.com/our-products/embedded-technologies/deepsee/ (Дата обращения: 01.05.2016).
  6. MATLAB – book1. / – [Электронный ресурс]. – Режим доступа:URL: http://matlab.exponenta.ru/neuralnetwork/book1/index.php. (Дата обращения: 01.04.2016).
  7. MATLAB – book2. / – [Электронный ресурс]. – Режим доступа: URL: http://matlab.exponenta.ru/neuralnetwork/book2/18/trainlm.php. (Дата обращения: 01.04.2016).
  8. Oracle Cryslat Ball. / – [Электронный ресурс]. – Режим доступа: URL: http://www.hyperion.ru/products/appl/r_pr/. (Дата обращения: 01.05.2016).
  9. SAS Business Intelligence. / – [Электронный ресурс]. – Режим доступа: URL: http://www.sas.com/ru_ru/home.html. (Дата обращения: 01.05.2016).
  10. SPSS. / – [Электронный ресурс]. – Режим доступа: URL: http://www-01.ibm.com/software/ru/analytics/spss/. (Дата обращения: 01.05.2016).
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

Комментарии (2)

# Динара 23.02.2019 16:01
очень отличные работа) как получить полные коды работы?
# Влад 15.03.2020 19:18
Такой вопрос - на момент передачи в функцию 'Y1= sim(net,P1)' какими значениями инициализирован массив P1? У меня есть ощущение, что заранее известны все 120 значений, и сначала в настроенную сеть подаются 115 значений, затем оставшиеся 5, и все это выводится потом вместе на график, или я не прав? Т.е. как такового предсказания 5 НЕИЗВЕСТНЫХ ранее значений не происходит.

Оставить комментарий