← Назад к портфолио

02 / Case Study

Darkstore

Прогнозирование недельных продаж

Production-пайплайн прогнозирования недельных продаж магазинов и отделов с автоматическим batch inference.

CatBoost PostgreSQL Airflow S3 Time Series
system running slowly
RMSE 2727.69
MAE 1281.70
0.9843
01

О проекте

Система автоматически прогнозирует недельные продажи магазинов и отделов на плановый период.

Результаты сохраняются в PostgreSQL и могут использоваться в аналитике и бизнес-процессах.

02

Бизнес-задача

Планирование

Прогноз будущих продаж для планирования деятельности магазинов.

Нагрузка

Оценка ожидаемого объёма продаж и нагрузки.

Аналитика

Использование прогнозов в аналитических и бизнес-сценариях.

03

Источники данных

sales

Исторические продажи.

plan

Плановые периоды прогнозирования.

stores

Информация о магазинах.

Дополнительно использовались внешние признаки, связанные с периодом и характеристиками продаж.

04

Feature Engineering

Временные признаки

  • month
  • quarter
  • year
  • week

Lag Features

  • sales_1week_ago
  • sales_2week_ago
  • sales_4week_ago

Rolling Statistics

  • mean_sales_2week
  • mean_sales_4week
  • avg_sales_before

Основной акцент сделан на исторической динамике продаж. Lag и rolling-признаки рассчитываются только по прошлым данным, поэтому не используют будущие значения target.

05

Model Development

CatBoostRegressor

Градиентный бустинг используется для прогнозирования недельного объёма продаж.

Входные признаки

Временные, лаговые и агрегированные характеристики исторических продаж.

Метрики

RMSE, MAE и R² используются для оценки качества прогноза.

06

Результаты модели

RMSE 2727.69
MAE 1281.70
0.9843

Параметры CatBoost

iterations = 1000
learning_rate = 0.05
depth = 8
loss_function = RMSE
use_best_model = True

best_iteration = 998
07

Важность признаков

Lag Features

  • sales_1week_ago
  • sales_2week_ago
  • sales_4week_ago

Aggregated Features

  • mean_sales_4week
  • avg_sales_before

Историческая динамика продаж является главным источником информации для прогноза будущего спроса.

08

Production Pipeline

01 PostgreSQL Input data
02 Preprocessing Features
03 S3 Model storage
04 Inference Batch prediction
05 PostgreSQL Predictions
09

Airflow DAG

load_data
    ↓
preprocess_features
    ↓
load_model
    ↓
run_inference
    ↓
save_predictions

DAG автоматически запускает полный batch inference pipeline по расписанию.

10

Инженерные решения

Единый preprocessing

Feature engineering вынесен в отдельный модуль preprocessing.py.

Model Storage

Модель загружается из S3 во время inference.

Batch Processing

Прогнозирование автоматически запускается через Airflow.

11

Архитектура

PostgreSQL Data
Preprocessing Features
CatBoost Prediction
PostgreSQL Output
12

Technology Stack

Python Pandas NumPy CatBoost PostgreSQL Apache Airflow S3 boto3 psycopg2
13

Project