1.04M
Category: marketingmarketing

Прогноз Fresh-категорий

1.

Прогноз
Fresh-категорий

2.

Декомпозиция прогноза
/Идея
Прогноз доли товара в
категории
Прогноз категории
Общий уровень спроса
Тренд
Сезон
Праздники
День недели
Выходные
Промо-активности(в
меньшей степени)
Популярность товара
Промо-активности
Цена товара VS медиана
цен в категории
Доступность товара
Количество товаров в
категории(каннибализация)
2

3.

Декомпозиция прогноза
/Этапы прогнозирования
1. Построение прогноза продаж в категории
2. Построение прогноза доли товаров в категории
3. Итоговый прогноз = Прогноз категории*Доля товара
3

4.

Прогноз категории
/Бейзлайн
prediction=weekday_rolling_mean*trend*holiday_coef
weekday_rolling_mean–среднее за последние четыре таких же дня недели. Если
weekday_rolling_mean>1.3*weekday_rolling_median и weekday_rolling_median>0 то
используем weekday_rolling_median*1.3
trend–темп прироста продаж WoW за последние 4 недели. Но не больше 10% по
модулю
holiday_coef–праздничный коэффициент. Рассчитывается на 4 уровне (class)
добавляется на период праздников
4

5.

Прогноз категории
/Бейзлайн. Расчет праздничных коэффициентов
Коэффициент=Продажи на дату/медиана за 14 дней
Усреднен за 3 года
5

6.

Прогноз категории
/Бейзлайн
6

7.

Прогноз категории
/Бустинг над ошибками бейзлайна
Фичи:
'is_first_days‘ – количество товаров в категории, у которых идут первые 3 дня акции
'isdiscount‘ – количество товаров на акции в категории
'items_count‘ – общее количество товаров в категории
'weekday‘, 'day', 'month‘, 'day_of_year‘ – фичи из даты
'weekday_rolling_mean‘ – скользящее среднее за день недели
'rolling_mean_28days‘ – скользящее среднее за 28 дней
pct_change‘ – тренд WoW
'holiday‘ – Флаг праздник
'number_holiday_day‘ – Номер дня в праздничные даты
'coef‘ – Праздничный коэффициент
'baseline‘ – прогноз бейзлайна
'qnty‘, 'qnty_1_day_ago', 'qnty_2_day_ago', 'qnty_3_day_ago', 'qnty_4_day_ago‘ – продажи 1, 2, 3, 4, 5 дней назад
'1_day_diff', '3_day_diff‘ – прирост продаж за 1, за 3 дня
'error', 'error_1_day_ago', 'error_2_day_ago', 'error_3_day_ago‘ – ошибка бейзлайна 1, 2, 3, 4 дня назад
'CLASS‘ – Класс товара
7

8.

Прогноз
/Прогноз доли товара
Фичи:
"isdiscount" - флаг Акция
"PromoTypeCode" - тип акции
"number_disc_day" - номер дня в акции
"discount" - размер скидки
"month", "day", "year", "weekday", "day_of_year", "weekend" - фичи из даты
"holiday",
"before_holiday", - флаг праздник, предпраздничные продажи
"CLASS" - Класс товара
"price", "mean_price_subclass", "price_share" - цена, средняя цена в субклассе, отношение цены к средней
"items_in_subclass", "discount_items_in_subclass" – количество товаров в подклассе, кол-во товаров на акции в субклассе
"share", "share_1_day_ago", "share_2_day_ago", "share_3_day_ago", "share_4_day_ago", - Доля товаров 1,2,3,4,5 дней назад
"1_day_diff", "3_day_diff", - прирост доли за 1, за 3 дня
"weekday_rolling_mean", "rolling_mean28" – скользящее среднее по дню недели, за 28 дней
8

9.

Постпроцессинг
Отдельно ограничиваются прогноз категории и прогноз доли
• Прогноз категории ограничивается максимальными и минимальными значениями за 13
месяцев
• Прогноз доли ограничивается 0 и 1. Так же суммарный прогноз по субклассу не может
отклонятся от 1 больше, чем на 15%
9

10.

Хранилище
/s3
/data/external
/fresh
/fresh_subclasses.parquet
/holidays_coefs.parquet
Категории фреш
Коэффициенты для праздников
10

11.

Скрипты
prediction.py – расчет фрешевого прогноза идет в основном инференсе. Захардкожен магазин
1354, для которого передаем прогноз
fresh.py – все функции
11
English     Русский Rules