Прогнозирование спроса в дипломе: от сырых данных до защищаемой ML-модели
16 апреля в Технопарке «Сколково» соберутся аналитики, ML-инженеры и руководители цепей поставок на конференции Supply & Demand Planning. Тема — прогнозирование спроса и операционное планирование. Для выпускника ИТ это не «новость из мира логистики», а готовый скелет ВКР: временные ряды, признаки, метрики качества, интеграция прогноза в S&OP-процесс. Такие темы любят и нормоконтроль, и ГЭК, потому что результат измерим в процентах ошибки, а не «в повышении удобства». Ниже — как встроить этот кейс в диплом, какие схемы нарисовать и что посчитать, чтобы работа защищалась без нервов.
Что реально обсуждают на S&OP-конференциях (и как это переносится в ВКР)
Прогнозирование спроса перестало быть «одной моделькой в Jupyter». Сегодня это конвейер: сбор истории продаж, обработка промо и праздников, обучение нескольких моделей, бэктестинг, публикация прогноза в планировщик. Именно эту цепочку нужно показать в дипломе — от постановки до метрик. Хорошая ВКР на такую тему укладывается в три главы: анализ методов и предметной области, проектирование и реализация пайплайна, оценка качества и экономический эффект.
Как сформулировать три реальные темы ВКР
| Тема | Цель | Задачи | Структура глав |
|---|---|---|---|
| Прогнозирование спроса на основе ансамбля статистических и ML-моделей | Снизить MAPE прогноза на 15–20% относительно наивного baseline | 1) Обзор ARIMA/ETS/Prophet/LightGBM; 2) сбор и очистка истории продаж; 3) feature engineering (лаги, праздники, промо); 4) бэктест и сравнение моделей | Гл.1 — методы и метрики; Гл.2 — архитектура пайплайна и реализация; Гл.3 — эксперименты и S&OP-эффект |
| Сервис прогнозирования спроса с MLOps-циклом и мониторингом дрейфа | Собрать воспроизводимый сервис с автоперетренировкой и алертами | 1) Спроектировать API прогноза; 2) организовать хранение фичей; 3) настроить CI/CD модели; 4) ввести контроль деградации | Гл.1 — S&OP и требования; Гл.2 — C4-диаграмма и код; Гл.3 — нагрузочное тестирование и метрики |
| Операционное планирование запасов на базе прогноза спроса | Снизить страховой запас без роста дефицита | 1) Классификация SKU по ABC/XYZ; 2) расчёт точки заказа; 3) имитационное моделирование; 4) оценка затрат на хранение | Гл.1 — теория управления запасами; Гл.2 — модель и реализация; Гл.3 — сценарный анализ |
Обратите внимание: во всех трёх темах есть измеримая цель. «Разработать систему» — не цель, а глагол. ГЭК спрашивает «на сколько?» — и вы обязаны ответить числом.
Архитектура и схемы: что рисовать в главе 2
Используйте C4-модель: контекст (пользователь-планировщик, ERP, сервис прогноза) → контейнеры (API, очередь, хранилище фичей, хранилище моделей) → компоненты внутри сервиса. Так делают на взрослых проектах, и комиссия это видит. UML-диаграмму классов оставьте для деталей реализации, а процессы прогнозирования и перепланирования покажите в BPMN 2.0 — там же место точке принятия решения «переобучать модель или нет».
Для требований — ГОСТ 34.601 и ГОСТ 34.602, если работа системная; для качества ПО — ISO/IEC 25010: сделайте трассировку «требование → характеристика → метрика». Например, точность прогноза — это функциональная пригодность, время отклика API — производительность, стабильность при пиковой нагрузке — надёжность. Планирование спринтов и риски удобно оформить по PMBOK 7.
Метрики, которые спрашивают на защите
- MAPE — средняя абсолютная ошибка в процентах: основной язык S&OP-отдела.
- RMSE — штрафует крупные промахи, важен для SKU с высокими продажами.
- Bias — систематическое смещение: постоянно занижаем или завышаем спрос?
- Coverage интервального прогноза — доля фактических значений внутри доверительного интервала.
- Сервисный уровень — доля заказов, выполненных со склада, и оборачиваемость запаса — «экономический» финал главы 3.
Пример кода: baseline + ML и честная валидация
import numpy as np
import pandas as pd
from sklearn.metrics import mean_absolute_percentage_error
from lightgbm import LGBMRegressor
def make_features(df):
df = df.sort_values("date").copy()
for lag in (1, 7, 14, 28, 56):
df[f"lag_{lag}"] = df["sales"].shift(lag)
df["roll_mean_7"] = df["sales"].shift(1).rolling(7).mean()
df["roll_std_28"] = df["sales"].shift(1).rolling(28).std()
df["dow"] = df["date"].dt.dayofweek
df["is_promo"] = df["promo"].astype(int)
return df.dropna()
def backtest(df, model, horizon=28):
df = make_features(df)
cut = df["date"].max() - pd.Timedelta(days=horizon)
train, test = df[df["date"] <= cut], df[df["date"] > cut]
feats = [c for c in df.columns if c not in ("date", "sales")]
model.fit(train[feats], train["sales"])
pred = model.predict(test[feats])
mape = mean_absolute_percentage_error(test["sales"], pred)
rmse = np.sqrt(((test["sales"] - pred) ** 2).mean())
bias = (pred.mean() - test["sales"].mean()) / test["sales"].mean()
return {"MAPE": round(mape, 4), "RMSE": round(rmse, 2), "Bias": round(bias, 4)}
print(backtest(df, LGBMRegressor(n_estimators=600, learning_rate=0.05)))
Ключевой момент — валидация по времени, а не случайный train_test_split. Случайное разбиение даёт утечку из будущего и завышенное качество. Комиссия, которая видит скользящее окно бэктеста, обычно закрывает тему «а как вы проверяли?» сразу.
Чему вы научитесь на такой ВКР
- Строить воспроизводимый пайплайн «данные → фичи → модель → прогноз» с логированием экспериментов в MLflow.
- Считать MAPE, RMSE, bias и интерпретировать их для бизнеса, а не «ради отчёта».
- Проектировать сервис прогноза по C4 и документировать требования по ГОСТ 34.
- Связывать ML-качество с экономикой: сервисный уровень, запасы, оборачиваемость.
- Оформлять схемы, код и приложения так, чтобы нормоконтроль не нашёл замечаний.
Частые вопросы студентов
Где брать данные о продажах, если нет доступа к ERP?
Открытые наборы: M5 (Walmart), Rossmann Store Sales, Favorita, датасеты Kaggle по рознице. Для ВКР достаточно одного датасета на 2–3 года ежедневных продаж по 100–500 SKU. В главе 1 обоснуйте выбор и опишите предобработку: пропуски, выбросы, праздничные календари.
Нужна ли нейросеть или хватит LightGBM?
Для табличных временных рядов с промо и календарём градиентный бустинг часто обходит LSTM и при этом обучается за секунды. Если хотите нейросеть — сравнивайте с бустингом и статистикой (ETS, ARIMA). В ВКР ценится не сложность модели, а честное сравнение и вывод.
Как защитить ML-часть, если комиссия не из области?
Начинайте с задачи: «планировщик теряет X% маржи из-за ошибки прогноза». Дальше — сравнение baseline и вашей модели одной цифрой MAPE. Схемы, метрики, экономический эффект в рублях работают лучше графиков сходимости.
Насколько подробно оформлять код в приложениях?
В приложения — ключевые модули: подготовка данных, обучение, инференс API. Полный репозиторий упомяните ссылкой и приложите README. Каждый листинг — с подписью и ссылкой в тексте, иначе нормоконтроль вернёт на доработку.
- Заголовок и цель согласованы, каждая задача закрыта выводом в конце главы.
- Все схемы (C4, BPMN, UML) пронумерованы и упомянуты в тексте.
- Метрики прогноза посчитаны на отложенном периоде, есть baseline для сравнения.
- Оформление по ГОСТ 7.32 / ГОСТ 19 (если есть ПО) — поля, шрифты, подписи, список литературы.
- Антиплагиат: оригинальность подтверждена, самоцитирование корректно.
- Приложения содержат листинги, инструкцию запуска, ссылку на репозиторий.
- Есть раздел с экономикой: сервисный уровень, запасы, эффект в деньгах или процентах.
1. Прогноз без горизонта. Модель обучают «на всём», а потом удивляются, почему на 90 дней вперёд плохо. В S&OP горизонт — часть постановки: определите его в главе 1 и обоснуйте.
2. Случайное разбиение выборки. Смотрите код выше — только скользящее окно. Иначе метрики завышены, а на защите это вскрывается одним вопросом.
3. Игнорирование промо и праздников. Конференция в Сколково именно про это: планирование без учёта акций и календаря даёт систематический bias. Добавьте признаки промо и праздников — эффект на MAPE заметен сразу.
Если тема кажется объёмной, а сроки поджимают — у нас есть запас в 120 часов на доработку любой главы: от постановки задачи и подбора датасета до расчёта метрик и оформления по ГОСТ. Первая консультация бесплатная: разберём ваш черновик и подскажем, что усилит защиту. Мы помогаем студентам с дипломом по самым разным темам — от ML до DevOps.
Источник: В Технопарке «Сколково» состоится конференция по прогнозированию спроса и операционному планированию в цепях поставок – Supply & Demand Planning Conference (опубликовано 2026-03-25)