Проект будет реализован в области ритейла. В бизнесе с огромными оборотами всегда крайне остро стоят вопросы оптимизации. Благодаря эффективной обработке накопленных данных о поведении покупателей и их предпочтениях розничные торговые сети вполне способны получить конкурентные преимущества при минимальных затратах. «Умные» программы повышения лояльности клиентов, исключающие заведомо ненужные предложения или взаимодействие с незаинтересованной аудиторией, влияют на рост товарооборота и снижение потерь.
Наше решение позволит компании снизить средства на маркетинговую компанию, а также исключить взаимодействие с пользователями, которые могут негативно воспринять взаимодействие с ним.
Зная параметры клиентов мы сможем создать сервис, который будет автоматически определять, стоит ли компании как-либо взаимодействовать с клиентом.
Цель проекта - Нам необходимо разработать сервис, который предсказывает, следует ли отправлять текстовое сообщение клиенту.
Успешность внедрения проекта мы сможем оценить по уменьшенному оттоку клиентов и по уменьшенным затратам на отправку сообщений клиентам.
В качестве бизнес метрики мы будем использовать: Доход = количество клиентов * средний чек
Оценивать бизнес метрику мы будем на всех клиентах
Для решения поставленой задачи мы построим uplift модель.
Принято выделять 4 типа клиентов реакции на коммункацию:
- Не беспокоить — человек, который будет реагировать негативно, если с ним прокоммуницировать.
- Потерянный — человек, который никогда не совершит целевое действие, вне зависимости от коммуникаций. Взаимодействие с такими клиентами не приносит дополнительного дохода, но создает дополнительные затраты.
- Лояльный — человек, который будет реагировать положительно, несмотря ни на что. Это самый лояльный вид клиентов. По аналогии с предыдущим пунктом, такие клиенты также расходуют бюджет.
- Убеждаемый — это человек, который положительно реагирует на предложение, но при его отсутствии не выполнил бы целевого действия. Это те люди, которых мы хотели бы определить нашей моделью, чтобы с ними прокоммуницировать.
Мы будем использовать uplift модель для того, чтобы выделить только убеждаемых клиентов.
В нашей задаче мы будем использовать метрику uplift@k, которая представляет собой размер uplift на топ k процентах выборки. Значение k будет зависеть от бюджета, который есть для коммуникации с клиентами.
Таким образом мы сформулировали бизнес и математическую задачу, определили необходимые метрики для каждой из них.
В этом проекте используются данные, предоставленные платформой ods.ai: X5 Retail Hero: Uplift Modeling for Promotional Campaign, с помощью которых предсказывается, насколько можно увеличить вероятность покупки в результате отправки рекламного SMS.
В данных содержится информация о клиентах и история покупок клиентов до коммуникации.
Информация о клиентах: пол, возраст, first_redeem_date, first_issue_date
История покупок: дата покупки, id магазина, список купленных товаров, стоимость каждого товара, количество начисленных и потраченных бонусных баллов
Исследование данных и построение baseline модели приведено в ноутбуке uplift_eda.ipynb, ссылка для удобного просмотра в браузере: nbviewer
Чтобы оценить качество модели, мы сделали отложенную выборку (hold-out) в 30%. Так как данных у нас много, кросс-валидация вычислительно дорогостоящий метод, поэтому использовать его нецелесообразно.
Мы исследовали данные и построили baseline модель, поэтому можем переходить к оценке экономического эффекта
Для визуализации оценки экономического эффекта составим таблицу:
Сценарий | Расходы | Доход | Прибыль |
---|---|---|---|
Никак не взаимодействовать с клиентами | ➡️ | ➡️ | ➡️ |
Провзаимодействовать со всеми клиентами | ➡️ | ||
Взаимодействовать только с убеждаемыми клиентами |
Логично, что при улучшении качества нашей модели, расходы снизятся. Алгоритм все лучше и лучше будет ранжировать убеждаемых клиентов, на которых мы хотим сосредоточиться. За счет этого, прибыль с маркетинговой компании увеличится.
Разработка и валидация ML модели ссылка на nbviewer
В качестве демо стенда используется связка streamlit и heroku. Данные подгружаются в виде csv файла определенной структуры, пример указан на самом стенде. Ссылка на сам стенд. Ссылка на репозиторий стенда.
git clone https://github.com/flashlight101/teta_summer_school_uplift_x5.git
cd teta_summer_school_uplift_x5
pip install -r requirements.txt
- Безмен Евгений
- Евгений Туров
- Петрик Ярослав
- Шаймухаметов Ильяс