ОПИСАНИЕ ПРОЕКТА
Интернет-магазин «В один клик» продаёт разные товары: для детей, для дома, мелкую бытовую технику, косметику и даже продукты. Отчёт магазина за прошлый период показал, что активность покупателей начала снижаться. Привлекать новых клиентов уже не так эффективно: о магазине и так знает большая часть целевой аудитории. Возможный выход — удерживать активность постоянных клиентов. Сделать это можно с помощью персонализированных предложений.
«В один клик» — современная компания, поэтому её руководство не хочет принимать решения просто так — только на основе анализа данных и бизнес-моделирования.
Итак, нашему отделу поручили разработать решение, которое позволит персонализировать предложения постоянным клиентам, чтобы увеличить их покупательскую активность.
Предоставлены данные в табличной форме:
market_file.csv - содержит данные о поведении покупателя на сайте, о коммуникациях с покупателем и его продуктовом поведении.
id— номер покупателя в корпоративной базе данных.Покупательская активность— рассчитанный класс покупательской активности (целевой признак): «снизилась» или «прежний уровень».Тип сервиса— уровень сервиса, например «премиум» и «стандарт».Разрешить сообщать— информация о том, можно ли присылать покупателю дополнительные предложения о товаре. Согласие на это даёт покупатель.Маркет_актив_6_мес— среднемесячное значение маркетинговых коммуникаций компании, которое приходилось на покупателя за последние 6 месяцев. Это значение показывает, какое число рассылок, звонков, показов рекламы и прочего приходилось на клиента.Маркет_актив_тек_мес— количество маркетинговых коммуникаций в текущем месяце.Длительность— значение, которое показывает, сколько дней прошло с момента регистрации покупателя на сайте.Акционные_покупки— среднемесячная доля покупок по акции от общего числа покупок за последние 6 месяцев.Популярная_категория— самая популярная категория товаров у покупателя за последние 6 месяцев.Средний_просмотр_категорий_за_визит— показывает, сколько в среднем категорий покупатель просмотрел за визит в течение последнего месяца. Неоплаченные_продукты_штук_квартал — общее число неоплаченных товаров в корзине за последние 3 месяца.Ошибка_сервиса— число сбоев, которые коснулись покупателя во время посещения сайта.Страниц_за_визит— среднее количество страниц, которые просмотрел покупатель за один визит на сайт за последние 3 месяца.
market_money.csv - с данными о выручке, которую получает магазин с покупателя, то есть сколько покупатель всего потратил за период взаимодействия с сайтом.
id— номер покупателя в корпоративной базе данных.Период— название периода, во время которого зафиксирована выручка. Например, 'текущий_месяц' или 'предыдущий_месяц'.Выручка— сумма выручки за период.
market_time.csv - с данными о времени (в минутах), которое покупатель провёл на сайте в течение периода.
id— номер покупателя в корпоративной базе данных.Период— название периода, во время которого зафиксировано общее время.минут— значение времени, проведённого на сайте, в минутах.
money.csv - с данными о среднемесячной прибыли покупателя за последние 3 месяца: какую прибыль получает магазин от продаж каждому покупателю.
id— номер покупателя в корпоративной базе данных.Прибыль— значение прибыли.
План работ и перечень основных задач
Перед началом работы составим краткий план и перечень работ.
Шаг 1. Загрузка, изучение и предварительная обработка данных
Шаг 1. Загрузка данных:
- Установка пакетов и импортирование необходимых библиотек (например pandas, seaborn и matplotlib и пр...).
- Загрузка данных из файлов.
- Изучение данных.
Шаг 2. Предобработка данных
- Просмотр данных (методы head(), info(), describe()).
- Обработка пропусков (удаление или заполнение там, где это возможно).
- Преобразование типов данных там где это необходимо.
Шаг 3. Исследовательский анализ данных
- Проведение статистический анализ всех признаков каждой таблицы.
- Построим графики для каждого признака. Количественным и категориальным признакам подходят разные графики.
- Отберем клиентов с покупательской активностью не менее трёх месяцев, то есть таких, которые что-либо покупали в этот период.
- Сделаем выводы о данных.
Шаг 4. Объединение таблиц
- Объединим таблицы market_file.csv, market_money.csv, market_time.csv. Данные о прибыли из файла money.csv при моделировании нам не понадобятся.
- Учтем, что данные о выручке и времени на сайте находятся в одном столбце для всех периодов. В итоговой таблице сделайте отдельный столбец для каждого периода.
Шаг 5. Корреляционный анализ
- Изучим взаимосвязь между признаками: рассчитаем коэффициенты корреляции между всеми признаками.
- Построим матрицу корреляции для целевого признака и всех количественных признаков с учётом значения категориальных признаков.
- Сделайте выводы о мультиколлинеарности и при необходимости устраните её.
Шаг 6. Использование пайплайнов
- Применим все изученные модели при помощи пайплайнов.
- Во время подготовки данных используем ColumnTransformer. Количественные и категориальные признаки обработаем в пайплайне раздельно. Для кодирования категориальных признаков используйте как минимум два кодировщика, для масштабирования количественных — как минимум два скейлера.
- Обучите четыре модели: KNeighborsClassifier(), DecisionTreeClassifier(), LogisticRegression() и SVC().
- Выберем лучшую модель.
Шаг 7. Анализ важности признаков
- Оценим важность признаков для лучшей модели и построим график важности с помощью метода SHAP.
- Сделаем выводы о значимости признаков.
Шаг 8. Сегментация покупателей
- Выполним сегментацию покупателей. Используем результаты моделирования и данные о прибыльности покупателей.
- Выберем группу покупателей и предложим, как увеличить её покупательскую активность.
- Сделаем выводы о сегментах.
Шаг 9. Общий вывод
- Опишем задачу.
- Опишем исходные данные и проведённую предобработку.
- Напишем, что мы сделали для поиска лучшей модели.
- Укажем лучшую модель.
- Добавим выводы и дополнительные предложения для выбранного сегмента покупателей.