Долго думал, как уместить рассказ о метриках в небольшой пост, но не смог придумать. Поэтому про них будет что-то более масштабное (пост на Хабр или целый вебинар) чуть позже



А сегодня будет немного необычный формат - попробуем сделать reverse engineering ML проекта!) И конечно подумать, как его улучшить, чтобы он принес больше пользы - поехали 🚂



Начнём с классики: ML для пополнения товаров на полке из статьи



Задача звучит примерно так:

В течение дня товары на полке в магазине заканчиваются. Но товар есть на складе магазина. Как бы нам научиться определять, что товар заканчивается, и вовремя принести доп единицы товара со склада?



Бизнес польза вполне очевидна:

Мы повышаем доступность товара —> повышаем продажи



Ограничения:

Данных по остаткам (кол-ву товара на полке) у нас нет. Есть только данные по продажам на кассе



Как решали в статье:

Мне очень понравилось, что ребята честно написали как провалилась тяжёлая артиллерия с LightGBM (почитайте подробности в статье - оно того стоит), и в итоге они остановились на очень простом подходе:



1. Спрос на товар имеет распределение Пуассона

2. Давайте по истории оценим его параметр mu = среднее

3. Зная закон распределения и его параметр mu, мы можем считать вероятность того, что товар был продан <= k раз

4. Если до 14 часов для фактического кол-ва продаж такая вероятность < 1%



P(кол-во продаж <= фактические продажи до 14:00) < 1%



, считаем, что товар закончился (поэтому у него так мало продаж) и его нужно пополнить на полке



В итоге в статье говорят, что в 58% случаев такой подход действительно выявляет, что товара на полке нет. При этом случайная модель выявляла бы такие товары лишь в 5% случаев