При получении вами критического (красного) замечания по проекту, проведу правки.
Решение сдесь: Добавь в корзину - Перейди в корзину - Укажи Email - Оплатить по СБП - СБП (приложение вашего банка) - Получи решение на Email
Не можешь оплатить, тогда через "Помощь" запроси другую систему оплаты (Webmoney, Alipay, Telegram (USDT, TON)).
Вернуться в раздел: Я.Практикум
Вернуться в оглавление: Я.Практикум
Проект: Обучение с учителем: качество модели
Описание проекта
Интернет-магазин «В один клик» продаёт разные товары: для детей, для дома, мелкую бытовую технику, косметику и даже продукты. Отчёт магазина за прошлый период показал, что активность покупателей начала снижаться. Привлекать новых клиентов уже не так эффективно: о магазине и так знает большая часть целевой аудитории. Возможный выход — удерживать активность постоянных клиентов. Сделать это можно с помощью персонализированных предложений.
«В один клик» — современная компания, поэтому её руководство не хочет принимать решения просто так — только на основе анализа данных и бизнес-моделирования. У компании есть небольшой отдел цифровых технологий, и вам предстоит побыть в роли стажёра в этом отделе.
Итак, вашему отделу поручили разработать решение, которое позволит персонализировать предложения постоянным клиентам, чтобы увеличить их покупательскую активность.
Как решать задачу
Продумывать подход к решению этой задачи вам не придётся — руководитель отдела его уже сформировал:
- Нужно промаркировать уровень финансовой активности постоянных покупателей. В компании принято выделять два уровня активности: «снизилась», если клиент стал покупать меньше товаров, и «прежний уровень».
- Нужно собрать данные по клиентам по следующим группам:
- Признаки, которые описывают коммуникацию сотрудников компании с клиентом.
- Признаки, которые описывают продуктовое поведение покупателя. Например, какие товары покупает и как часто.
- Признаки, которые описывают покупательское поведение клиента. Например, сколько тратил в магазине.
- Признаки, которые описывают поведение покупателя на сайте. Например, как много страниц просматривает и сколько времени проводит на сайте.
- Нужно построить модель, которая предскажет вероятность снижения покупательской активности клиента в следующие три месяца.
- В исследование нужно включить дополнительные данные финансового департамента о прибыльности клиента: какой доход каждый покупатель приносил компании за последние три месяца.
- Используя данные модели и данные о прибыльности клиентов, нужно выделить сегменты покупателей и разработать для них персонализированные предложения.
Руководство одобрило описание решения, и вам, как специалисту по DS, нужно его реализовать.
Описание данных
Данные для работы находятся в нескольких таблицах. Нажмите на название файла, чтобы его скачать.
Таблица, которая содержит данные о поведении покупателя на сайте, о коммуникациях с покупателем и его продуктовом поведении.
id
— номер покупателя в корпоративной базе данных.Покупательская активность
— рассчитанный класс покупательской активности (целевой признак): «снизилась» или «прежний уровень».Тип сервиса
— уровень сервиса, например «премиум» и «стандарт».Разрешить сообщать
— информация о том, можно ли присылать покупателю дополнительные предложения о товаре. Согласие на это даёт покупатель.Маркет_актив_6_мес
— среднемесячное значение маркетинговых коммуникаций компании, которое приходилось на покупателя за последние 6 месяцев. Это значение показывает, какое число рассылок, звонков, показов рекламы и прочего приходилось на клиента.Маркет_актив_тек_мес
— количество маркетинговых коммуникаций в текущем месяце.Длительность
— значение, которое показывает, сколько дней прошло с момента регистрации покупателя на сайте.Акционные_покупки
— среднемесячная доля покупок по акции от общего числа покупок за последние 6 месяцев.Популярная_категория
— самая популярная категория товаров у покупателя за последние 6 месяцев.Средний_просмотр_категорий_за_визит
— показывает, сколько в среднем категорий покупатель просмотрел за визит в течение последнего месяца. Неоплаченные_продукты_штук_квартал — общее число неоплаченных товаров в корзине за последние 3 месяца.Ошибка_сервиса
— число сбоев, которые коснулись покупателя во время посещения сайта.Страниц_за_визит
— среднее количество страниц, которые просмотрел покупатель за один визит на сайт за последние 3 месяца.
Таблица с данными о выручке, которую получает магазин с покупателя, то есть сколько покупатель всего потратил за период взаимодействия с сайтом.
id
— номер покупателя в корпоративной базе данных.Период
— название периода, во время которого зафиксирована выручка. Например,'текущий_месяц'
или'предыдущий_месяц'
.Выручка
— сумма выручки за период.
Таблица с данными о времени (в минутах), которое покупатель провёл на сайте в течение периода.
id
— номер покупателя в корпоративной базе данных.Период
— название периода, во время которого зафиксировано общее время.минут
— значение времени, проведённого на сайте, в минутах.
Таблица с данными о среднемесячной прибыли покупателя за последние 3 месяца: какую прибыль получает магазин от продаж каждому покупателю.
id
— номер покупателя в корпоративной базе данных.Прибыль
— значение прибыли.
Инструкция по выполнению проекта
Решать задачу вам нужно в два этапа:
- Разработайте модель, которая предскажет вероятность снижения покупательской активности.
- Выделите сегмент покупателей, проанализируйте его и предложите, как увеличить его покупательскую активность. Используйте данные моделирования, данные о прибыли покупателей и исходные данные (если понадобятся). По желанию вы можете проанализировать больше одного сегмента.
Ниже несколько примеров сегментов, но вы также можете выделить свой:
- Группа клиентов с максимальной долей покупок по акции и высокой вероятностью снижения покупательской активности.
- Группа клиентов, которые покупают только технику, то есть товары с длинным жизненным циклом.
- Группа клиентов, которые покупают товары из категории «Товары для себя» (новая категория, которую можно выделить на основе текущих) или «Товары для детей».
- Группа клиентов с высокой вероятностью снижения покупательской активности и наиболее высокой прибыльностью.
Шаг 1. Загрузка данных
1.1 Загрузите данные. Файлы market_file.csv
, market_money.csv
, market_time.csv
, money.csv
доступны по ссылкам в описании данных или через пути к ним:
/datasets/market_file.csv
/datasets/market_money.csv
/datasets/market_time.csv
/datasets/money.csv
Обратите внимание: в некоторых файлах разделитель значений — точка с запятой, а разделитель десятичных значений — запятая.
1.2 Проверьте, что данные в таблицах соответствуют описанию. Исследованием и объединением данных вы займётесь позже.
Шаг 2. Предобработка данных
Проведите необходимую предобработку данных. Названия столбцов можно оставить кириллическими.
Шаг 3. Исследовательский анализ данных
Проведите исследовательский анализ данных из каждой таблицы. Отберите клиентов с покупательской активностью не менее трёх месяцев, то есть таких, которые что-либо покупали в этот период. Оформите выводы по результатам шага.
Шаг 4. Объединение таблиц
4.1 Объедините таблицы market_file.csv
, market_money.csv
, market_time.csv
. Данные о прибыли из файла money.csv
при моделировании вам не понадобятся. 4.2 Учитывайте, что данные о выручке и времени на сайте находятся в одном столбце для всех периодов. В итоговой таблице сделайте отдельный столбец для каждого периода.
Шаг 5. Корреляционный анализ
Проведите корреляционный анализ признаков в количественной шкале в итоговой таблице для моделирования. Сделайте выводы о мультиколлинеарности и при необходимости устраните её.
Шаг 6. Использование пайплайнов
Примените все изученные модели. Для этого используйте пайплайны.
6.1 Для подготовки данных создайте пайплайн с использованием ColumnTransformer
. Количественные и категориальные данные обработайте в пайплайне раздельно.
6.2 Создайте пайплайн для поиска лучшей модели из изученных: KNeighborsClassifier()
,DecisionTreeClassifier()
, LogisticRegression()
, SVC()
.
6.3 Для каждой модели подберите как минимум один гиперпараметр. Масштабируйте данные как минимум двумя методами.
6.4 Чтобы выбрать лучшую модель, определитесь с подходящей для моделей метрикой. Аргументируйте свой выбор.
Шаг 7. Анализ важности признаков
7.1 Оцените важность признаков для лучшей модели и постройте график важности с помощью метода SHAP.
7.2 Сделайте выводы о значимости признаков:
- какие признаки мало значимы для модели;
- какие признаки сильнее всего влияют на целевой признак;
- как можно использовать эти наблюдения при моделировании и принятии бизнес-решений.
Шаг 8. Сегментация покупателей
8.1 Выполните сегментацию покупателей. Используйте результаты моделирования и данные о прибыльности покупателей.
8.2 Выберите группу покупателей и предложите, как увеличить её покупательскую активность:
- Проведите графическое и аналитическое исследование группы покупателей.
- Сделайте предложения по работе с сегментом для увеличения покупательской активности.
8.3 Сделайте выводы о сегментах:
- какой сегмент вы взяли для дополнительного исследования,
- какие предложения вы сделали и почему.
Шаг 9. Общий вывод
Сделайте общий вывод:
- опишите задачу;
- опишите исходные данные и проведённую предобработку;
- напишите, что вы сделали для поиска лучшей модели;
- укажите лучшую модель;
- добавьте выводы и дополнительные предложения для выбранного сегмента покупателей.
Оформление
Выполните задание в Jupyter Notebook. Заполните программный код в ячейках типа code
, текстовые пояснения — в ячейках типа markdown
. Используйте форматирование и заголовки.
Как будут проверять мой проект
Ваш проект будут оценивать по критериям. Прежде чем решать кейс, внимательно изучите их.
На что обращают внимание при проверке проектов:
- как вы описываете найденные в данных проблемы;
- какие методы построения графиков применяете для исследовательского анализа;
- какие методы предобработки данных применяете и как обосновываете принятое решение;
- какие ML-решения вы реализуете;
- как подбираете метрику и объясняете её выбор;
- как выбираете и объясняете лучшее ML-решение;
- как выполняете сегментацию покупателей, какой сегмент выбираете и какие решения по персонализации предлагаете бизнесу;
- соблюдаете ли структуру проекта и поддерживаете аккуратность кода;
- какие выводы делаете;
- оставляете ли комментарии к шагам. Всё необходимое для того, чтобы выполнить проект, есть в темах, которые вы прошли.
Успехов!
Дорогой друг!
Я внимательно наблюдал за твоими действиями на сайте через вебвизор.
Если ты добрался до этой страницы, то скорее всего ты проходишь платное обучение на курсах.
Благодаря моим стараниям, целую главу ты можешь закрыть за сутки, а то и быстрее.
Думаю, что сэкономленное время, ты потратил с пользой, в то время как я сидел и пыхтел над заданиями.
Лучшая благодарность от тебя, это пожертвования на мой IT - проект.
Жертвуй столько, сколько не жалко, но и не скупись, чтобы было не стыдно.
Большое тебе спасибо, за твою благодарность!
Вернуться в раздел: Я.Практикум
Вернуться в оглавление: Я.Практикум