AI-прогнозирование спроса на коллекции в fashion-индустрии
Fashion — один из наиболее сложных рынков для прогнозирования спроса. Короткий жизненный цикл SKU (6-12 недель), высокая зависимость от трендов и погоды, отсутствие исторических данных по новым артикулам — всё это делает традиционные методы планирования неэффективными. ML-подходы снижают overstocks и stockouts на 20-35%.
Особенности fashion-прогнозирования
Cold Start Problem: Новая коллекция — нет исторических продаж. Решения:
- Attribute-based forecasting: прогноз через характеристики (цвет, паттерн, категория, ценовой сегмент)
- Transfer learning: похожий артикул прошлого сезона как anchor
- Analogous items: кластеризация новинок к существующим SKU с историей
Seasonality + Fashion Trend:
# Decomposition sales signal
# Sales = Seasonal × Category Trend × Fashion Trend × Price Effect × Random
# Fashion Trend: внешние сигналы (Instagram, Vogue, runway)
Короткая жизнь SKU: Классические временные ряды требуют длинной истории. Вместо этого — кросс-секционные модели на уровне артикула.
Источники данных
Внутренние:
- POS-данные по неделям: продажи, возвраты, скидки
- Инвентарные данные: остатки, out-of-stock даты
- Характеристики продукта: категория, бренд, цвет, материал, размеры, цена
Внешние трендовые сигналы:
- Google Trends: динамика поисковых запросов по категориям
- Instagram/Pinterest: engagement на fashion-контент (через API или scraping)
- Runway анализ: детекция трендов с показов (CV на фото с ModaOperandi, Vogue Runway)
- Погодные данные: температура напрямую влияет на продажи куртки/купальника
Social Listening:
trend_features = {
'google_trends_category_4w': trends_api_value,
'instagram_hashtag_growth': hashtag_weekly_growth_rate,
'search_volume_brand': keyword_planner_volume,
'temperature_deviation': weather_vs_seasonal_norm,
'competitor_stockout_signal': scraped_inventory_depletion
}
Модели прогнозирования
Attribute-based LightGBM: Для каждой новинки — предсказание peak week sales и sell-through rate на основе атрибутов + trend features. Обучение на исторических коллекциях.
Cluster + Analogous Item:
from sklearn.cluster import KMeans
# Кластеризация по attribute embedding
def find_analogous_items(new_item_features, historical_items, n_clusters=50):
kmeans = KMeans(n_clusters=n_clusters)
labels = kmeans.fit_predict(historical_items['features'])
new_cluster = kmeans.predict([new_item_features])[0]
analogs = historical_items[labels == new_cluster]
return analogs.sort_values('similarity_score', ascending=False).head(5)
Жизненный цикл SKU — кривая продаж: Не все артикулы одинаковы. Кластеризация life cycle curves:
- Тип A: быстрый старт → плавный спад (bestseller)
- Тип B: медленный старт → пик на 4-й неделе (niche item)
- Тип C: ровные продажи, базовые артикулы Прогноз формы кривой → распределение заказа по времени.
Pre-Season Planning vs. In-Season Adjustment
Pre-Season (за 6-9 месяцев до старта):
- Начальный заказ на основе attribute forecast
- Buy quantities по размерной сетке (size curve модель)
- Open-to-buy бюджет по категориям
In-Season корректировка (еженедельно): После первых 2-3 недель реальных продаж — Bayesian update исходного прогноза:
def bayesian_forecast_update(prior_forecast, observed_sales, sell_through_weeks):
"""
Обновление прогноза по первым неделям
Sell-through rate в первые 2 недели = сильный предиктор финального результата
"""
early_st_rate = observed_sales / prior_forecast[:sell_through_weeks].sum()
scaling_factor = early_st_rate ** 0.7 # регрессия к среднему
return prior_forecast * scaling_factor
Reorder и markdown триггеры:
- Если sell-through > 70% на 4-й неделе → reorder (если возможно по производственному циклу)
- Если sell-through < 30% на 6-й неделе → начало уценивания по markdown calendar
Размерная дистрибуция
Size Curve моделирование: Исторически: XS:S:M:L:XL = 5:20:35:25:15 для данной категории. ML корректирует по регионам, каналам и ценовому сегменту:
size_curve = lgbm.predict_proba(
category=category,
price_tier=price_tier,
channel=['online', 'store'],
region=region
)
# → оптимальное соотношение размеров в заказе
Проблема последнего размера: Stockout по одному размеру = потеря всей продажи. Оптимизация: небольшой буфер по размерам с наименьшей доступностью.
Метрики оценки
| Метрика | Значение |
|---|---|
| WAPE (Weighted APE) | < 30% для новых артикулов |
| Sell-through rate accuracy | ±10 pp |
| Stockout reduction | -25% vs. baseline |
| Overstock reduction | -20% vs. baseline |
| Markdown depth reduction | -3-5 pp |
Сроки: attribute-based forecast + analogous item matching + in-season update — 6-8 недель. Полная система с size curve, social trend signals, markdown optimization — 3-4 месяца.







