Анализ сайта СберАвтоподписка
Компания «СберАвтоподписка» хочет увеличить эффективность сайта:
- улучшить пользовательский опыт
- повысить конверсию
- сделать рекламные кампании более результативными Для этого требуется создать модель, которая предсказывает вероятность того, что пользователь совершит целевое действие (оставит заявку, закажет звонок и пр.) на сайте.
Работа была проведена для анализа сайта "СберАвтоподписка" на основе данных предоставленных в рамках проектного практикума.
Для решения задачи были использованы различные подходы по заполнению пропусков в данных:
- Были выявлены значения признаков (not set) и (none), которые при первичном анализе не были выявлены как NaN значения
- Были заполнены пропуски в признаках utm_sourse и utm_medium на основе данных о клиентах.
- Данные в признаке device_screen_resolution были заполнены модальными значениями категорий устройств.
- Признаки содержащие пропуски более чем в 50% данных были удалены.
В качестве целевой переменной были определены категории even_action, относящиеся к целевой переменной и выбраны наиболее полезные для анализа пользователей.
Для обработки данных был собран конвеер - pipeline. Он включает в себя:
- Преобразование признаков содержащих дату и время и трансформация их данных к переодическим значениям с помощью математических преобразований.
- Кодирование категориальных признаков, вычисляя среднее значение целевой переменной для каждой категории
Для оценки зависимость признаков и целевой пререрменной использовался:
- Корреляционная матрица
- Алгоритм Mutual Info
- Метод главных компонент (PCA)
Выбор модели и оценка метрик происходила с помощью кросс-валидации и тестировалась на моделях:
- Логистической регрессии
- Случайного леса
- CatBoost'а
Согласно заданию значение метрики ROC-AUC 0.65 было достингнуто и превышено на всех выбранных моделях. Однако наилучшие результаты показала модель CatBoost со значением метрики ROC-AUC в 0.76. Эта модель была включена в новый конвеер обработки данных и сериализована для дальнейшей работы.
Проект построен на микроархитектуре с использованием Docker Compose и включает в себя четыре контейнера:
- Web API
- Telegram Bot API
- RabbitMQ
- CatBoost Model
Взаимодействие между API и моделью происходит через очередь для каждого из способов взаимодействия.
Web API работает на локальном адресе http://127.0.0.1:8000
Telegram bot - https://t.me/HahatonVangaBot
Установка осуществляется с помощью команд Docker Compose:
docker-compose build
docker-compose up -d
- SberAvtopodpiska_Site_Analysis.ipynb - блокнот с подготовкой данных, разведочным анализом (EDA), оценкой модели ML и сериализацией pipeline
- project - основной проект, включает в себя:
- model - код и файлы контейнера модели
- telegram_bot_api - код и файлы контейнера телеграм бота
- web_api - код и файлы контейнера web интерфейса
