Машинное обучение при прогнозировании в ритейле

Константин Русаков,
аналитик данных, Тринити
Для мировой экономики сейчас характерна колоссальная динамика изменений. Возможность предсказания динамики рынка и возможность прогнозирования прибыли давно интересовали теоретиков и практиков. Отсутствие эффективных способов прогнозирования может с большой вероятностью привести малые предприятия к значительным убыткам, а крупные – к выбору недостаточно выгодных проектов.

Также ритейлерам жизненно важно обеспечить баланс между объемом поставок и продажами товаров, и с этой точки зрения использование современных методов прогнозирования, основанных на технологиях машинного обучения, следует рассматривать как весьма перспективное направление.
Для прогнозирования в ритейле, как известно, хорошо подходят временные ряды.
Рисунок 1. Объем продаж продукта
Временной ряд – это собранный в разные моменты времени (год, неделю, сутки или даже минуты, в зависимости от характера рассматриваемой переменной) статистический материал о значении каких-либо параметров (в простейшем случае – одного) исследуемого процесса.
В ритейле в качестве этого параметра обычно выступает объем продаж (рис. 1) или цена.
Обычно временной ряд состоит из нескольких компонентов:

1) тренда – общей долгосрочной тенденции изменения временного ряда, лежащей в основе его динамики;
2) сезонной составляющей – краткосрочного регулярно повторяющегося колебания значений временного ряда вокруг тренда;
3) случайной составляющей, характеризующей так называемое воздействие различного рода факторов на целевую переменную.

Чтобы понять действительное влияние различных факторов на продажи и повысить качество прогноза, предлагается убрать из временного ряда сезонную составляющую и попробовать промоделировать то, что осталось. Данные остатки описывают тренд и воздействие случайных факторов.
Рисунок 2. Изменение прироста рынка
Моделирование прироста рынка

Что означает прирост? И как избавиться от сезонной составляющей? Постараюсь ответить на эти вопросы.

Допустим, у нас есть месячные данные о продажах какого-либо продукта. Представим теперь текущее значение объема продаж в процентах – на сколько объем вырос по сравнению не с предыдущим месяцем, а с текущим месяцем прошлого года. Таким способом воздействие сезонной составляющей нивелируется (рис. 2).
После чего остается лишь тренд и случайная составляющая, которые и нужно прогнозировать.
Рисунок 3. Деревья решений
Технология XGboost

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

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

В градиентном бустинге используются деревья принятия решений (рис. 3). Сама по себе модель довольно слаба, но, когда они строятся последовательно и минимизируют ошибки друг друга, это дает хорошие результаты.
Рисунок 4. Прогноз продаж с помощью алгоритма градиентного бустинга над решающими деревьями
Как показывают и практика, и опыт решения задач прогнозирования в ритейле методами машинного обучения, в стандартных задачах при прогнозе рынка продукции, цен на продукцию, алгоритм градиентного бустинга над решающими деревьями очень часто является самым эффективным алгоритмом.

На рисунке 4 показан результат прогноза продаж продукта на три месяца с учетом 4-х летней истории.
Рисунок 5. Прогноз продаж
И для более наглядной визуализации и достоверности результата нужно провести конвертацию обратно в абсолютные значения, как показано на рисунке 5.

Результат, как мы видим, имеет высокую точность, при этом показатель MAPE равен 3,06%. Это означает, что точность предсказания составляет около 97%.

Заключение

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