Этот репозиторий содержит решения для прогнозирования продаж товаров с использованием различных методов временных рядов и машинного обучения. Больше про особенности функций и структуру можно прочитать в отчётах.
Проект решает задачу прогнозирования продаж товаров на 7, 30, 90 дней с использованием:
- Классических методов временных рядов (SARIMA, Exponential Smoothing и др.)
- Современных методов машинного обучения (CatBoost)
- Возможности сохранения и загрузки обученных моделей
- CatBoost - градиентный бустинг с категориальными фичами
- Поддержка exog-фич (в некоторых моделях)
- Сохранение и загрузка моделей
- Различные метрики оценки качества
- Визуализация предсказаний
├── models/ # Сохранённые модели catboost
├── reports/ # Jupyter-ноутбуки с анализом
│├── report_classic.ipynb # Весь pipline для классических моделей
│├── report_gb.ipynb # Весь pipline для catboost
│├── report_all.ipynb # Весь pipline для всех моделей
│├── report_load.ipynb # Пример инференса
├── results/ # Результаты анализа
├── solution/ # Решение
│├── analyse/ # Модуль с инструментами для анализа
│├── models/ # Модуль с моделями
││├── catboost/ # Модель на основе Сatboost
││├── exponential_smoothing/ # Модель на основе Exponential Smoothing
││├── fourier/ # Модель на основе разложение в ряд Фурье
││├── sarimax/ # Модель на основе SARIMAX
││├── unobsorved_components/ # Модель на основе Unobsorved Components
│├── preprocessing/ # Модуль с инструментами для препроцессинга
│├── scoring/ # Модуль с инструментами для скоринга
│├── transformation/ # Модуль с инструментами для преобразования данных
│├── utils/ # Модуль с вспомогательными инструментами
│├── visualizing/ # Модуль с инструментами для визуализации данных
├── source/ # Исходные данные и задания
- Установите зависимости:
pip install -r requirements.txt- Запустите ноутбуки из /reports
SARIMAX показал лучшие результаты (>50% случаев).
CatBoost показывает себя лучше всех остальных моделей. Сводные таблицы с метриками по всем моделям и все товарам можно посмотреть здесь.