Обзор моделей прогнозирования прерывистого спроса на базе алгоритмов машинного обучения
Николай Курбатов, аналитик данных, Beltel Datanomics
Продолжая тематику прогнозирования прерывистого спроса [1, 2], в данной статье рассказываем о решении этой задачи с помощью алгоритмов машинного обучения (ML).
Постановка задачи
1. Архитектура ML модели
В [1] мы кратко рассмотрели статистическую модель Кростона, основная идея которой в разделении задачи прогнозирования прерывистого спроса на две подзадачи: сначала оценка вероятности спроса, далее оценка объема спроса. Развивая эту идею, можно решить каждую подзадачу с помощью алгоритмов машинного обучения:
- возникновение спроса рассматривать как проблему классификации;
- оценку размера спроса – как проблему регрессии.
Для SKU с регулярным типом спроса нет необходимости оценивать вероятность спроса, для таких товаров можно сразу прогнозировать продажи регрессионной моделью.
В качестве классификатора спроса можно использовать метод SBC как в работе [3]. Данный метод относит продажи SKU к одному из четырех типов спроса на основе значений коэффициентов CV2 (Squared Coefficient of Variation) и ADI (Average inter-Demand Interval) [1]. Однако Rožanec J. и др. [4] рекомендуют разделять спрос на два типа только по пороговому значению коэффициента ADI, который измеряет регулярность спроса во времени, вычисляя средний интервал между периодами последовательного спроса.
Разделение мнений в литературе говорит о том, что классификацию типов спроса необходимо проводить отдельно для определенного набора данных, чтобы получить лучшие результаты.
Общую структуру решения задачи прогнозирования различного спроса с использованием ML алгоритмов можно представить в виде блок-схемы на Рисунке 1.
Рисунок 1. Блок-схема алгоритма прогнозирования спроса
2. Модели классификации и регрессии
Выбор классификатора во многом зависит от особенностей исходных данных. Так, например, если в данных доля нулевых продаж намного больше ненулевых (сильный дисбаланс классов), то лучше использовать Catboost [5]. В данном фреймворке можно регулировать веса классов, тем самым улучшая качество обучения модели.
В случае, когда важна скорость обучения лучше рассмотреть фреймворк LightGBM [6] и использовать различные техники балансировки классов (undersampling, oversampling, smote).
Для оценки размера спроса применяются как простые статистические алгоритмы прогнозирования (Simple Exponential Smoothing [4]), так и различные градиентные бустинги [3, 4]. Причем обучение регрессоров в данных статьях рекомендуют проводить на ненулевых продажах.
3. Признаки
Для обучения ML моделей в качестве признаков можно использовать различные показатели продаж (временных рядов). Среди них: ADI; CV2; предыдущие события возникновения или отсутствия спроса (среднее, разброс, перцентили) [4]; предыдущие размеры спроса; параметры распределения интервала между двумя периодами спроса; параметры распределения ненулевых продаж (среднее, разброс, перцентили, энтропия, коэффициенты эксцесса и асимметрии); коэффициент линейной МНК регрессии для дисперсий спроса в периоды ненулевых продаж; отношение суммы квадратов продаж последнего периода ненулевого спроса ко всему ряду и процент последовательных нулевых значений в конце временного ряда [3]; коэффициенты сезонности; априорная информация о продажах (акции, удачные маркетинговые кампании); погодные данные и др.
Для генерации признаков можно использовать также готовые библиотеки, например, tsfresh [7].
4. Обучение
Растущий объем исследований показывает, что ML модели, обученные на нескольких временных рядах, обеспечивают лучшие результаты, чем локальные модели, учитывающие временные ряды, соответствующие только одному товару [8, 9].
Заключение
Прогнозирование спроса – сложная и актуальная задача, для решения которой могут быть использованы различные методы. Мы рассмотрели основные техники прогнозирования прерывистого спроса с применением ML алгоритмов. Во многих исследованиях [3, 4] показано, что такие ML модели лучше прогнозируют продажи различного типа спроса при наличии достаточного количества данных. Однако при их обучении возникают трудности, решение которых требует экспертности и времени.
Список литературы
[1] Классификации типов спроса и обзор моделей для прогнозирования прерывистого спроса (datanomics.ru)
[2] Выбор метрики качества в задачах прогнозирования спроса (datanomics.ru)
[3] Xiaotian Zhuang, Ying Yu, Aihui Chen A combined forecasting method for intermittent demand using the automotive aftermarket data // Data Science and Management, Volume 5, Issue 2, 2022, Pages 43-56, ISSN 2666-7649, https://doi.org/10.1016/j.dsm.2022.04.001
[4] Rožanec, Jože & Mladenić, Dunja Reframing demand forecasting: a two-fold approach for lumpy and intermittent demand, 2021
[6] https://lightgbm.readthedocs.io/en/latest/
[8] Bandara, K., Bergmeir, C., Smyl, S. Forecasting across time series databases using recurrent neural networks on groups of similar series: A clustering approach. Expert Systems with Applications 140, 112896, 2020.
[9] Salinas, D., Flunkert, V., Gasthaus, J., Januschowski, T. Deepar: Probabilistic forecasting with autoregressive recurrent networks. International Journal of Forecasting 36, 1181–1191, 2020.