Обзор проекта
Использование информационных ресурсов может иметь большое влияние на принятие стратегических решений. Данные о взаимодействии помогают понять, как удерживать и привлекать новых клиентов, оказывая огромное влияние на прибыль и убыток.
В этой статье будет показано, как данные платформы потоковой передачи музыки могут быть использованы для прогнозирования вероятности отказа клиента от подписки. Традиционные алгоритмы машинного обучения, такие как модели случайного леса и повышения градиента, обычно хорошо справляются с этой задачей, если снабдить ее хорошо спроектированными функциями.
Заявление о проблеме
Стоит отметить, что, хотя здесь мы сосредоточены на прогнозировании оттока (клиентов, подтвердивших отказ от услуги), аналогичный анализ может быть применен для выявления клиентов, которые с наибольшей вероятностью обновят свою учетную запись. Анализ поведения при отмене заказа будет использован для понимания того, как удерживать и привлекать новых клиентов.
Показатели
Метрика оценки, которая будет использоваться в этом примере, - это макро-оценка F-1. Это позволит сбалансировать точность и предпочтение отзыва и будет учитывать несбалансированный характер набора данных (мы ожидаем, что пользователей, которые отказались, меньше, чем тех, кто этого не сделал). В реальном сценарии компромисс между точностью и отзывом может быть скорректирован в соответствии с бизнес-предпочтениями, например, мы можем захотеть изменить порог активации с 50% расчетной вероятности на 55% расчетной вероятности, чтобы минимизировать количество ложных срабатываний.
Обзор набора данных
Загрузка набора данных и изучение метаданных дает нам хороший обзор доступной информации. на первый взгляд кажется, что столбец «страница» будет содержать большую часть информации о взаимодействиях.
Number of rows: 278154 Number of columns: 18
Разработка функций
Как мы видим, каждая строка в наборе данных представляет собой взаимодействие с платформой. Давайте посмотрим, что это за взаимодействия, увеличив столбец страницы.
Как мы видим, большинство взаимодействий связано с просьбой проиграть следующую песню. У нас также есть потенциально ценная информация об удовлетворенности пользователей, которая может быть вычтена из «Нравится» и «Добавить в плейлист».
Также важно отметить, что с каждым взаимодействием связано время. Это поможет нам получить такие функции, как дата регистрации клиента и количество дней, в течение которых клиент активен.
Чтобы получить новые функции и преобразовать таблицу в соответствии с поведением клиентов по каждой строке, я применил несколько агрегатов по user_id. Некоторые функции, которые я решил добавить:
функции активности
- количество взаимодействий с платформой
- количество сыгранных песен
- количество отметок "Нравится", "Нравится", "Нравится", "Нравится" / "Нравится"
- количество добавленных друзей
- количество песен, добавленных в плейлист
- владение премиальной подпиской
особенности времени
- дней с момента регистрации
- дней с момента последнего взаимодействия
- даты между регистрацией и последним взаимодействием
особенности сеанса
- среднее время сеанса
- количество сеансов
целевая функция
- Подтверждение отмены
Поведение премиум-аккаунтов по сравнению с бесплатными
Важным этапом обработки было определение клиентов, которые использовали премиум-членство в прошлом. Я ожидал, что премиум-клиенты будут иметь значительно больший стимул для отмены своей учетной записи, если они не используют эту услугу. Однако на графике ниже мы видим, что соотношение клиентов, отказавшихся от подписки, одинаково для премиум и бесплатных аккаунтов. 36% против 28%.
При анализе оттока мы хотим сосредоточиться на премиальных клиентах. Поэтому я ограничиваю набор данных клиентами, которые ранее приобретали премиум-подписку.
Целевое количество
При более внимательном рассмотрении показателей отмены можно предположить, что набор данных несбалансирован. Как мы видим, 78% пользователей не аннулировали свою учетную запись, а 22% - сделали. Дальнейшие улучшения моделирования можно попробовать при выборке большинства классов.
Корреляционный анализ
Чтобы определить, какие функции связаны с отменой, я использовал тепловую карту корреляции.
Как мы видим, наиболее положительно коррелированные функции с отменой - это thumbs_down_ratio и 7d_thumbed_down. С другой стороны, характеристика days_active с наиболее отрицательной корреляцией. Эти результаты неудивительны: пользователи, которые недовольны платформой и плохо оценивают музыку, должны отменить свою подписку. Кроме того, если клиенты уже пользуются услугой в течение длительного времени, они с большей вероятностью будут придерживаться своей подписки, как показывает функция days_active.
Моделирование
случайный лес
Сначала , я хотел бы протестировать производительность модели случайного леса по умолчанию. Точность модели относительно высока - 0,85. Это не означает хорошую модель, учитывая, что у нас есть классовый дисбаланс. Точность и отзывчивость положительного класса относительно низкие, 0,5 и 0,4 соответственно. Макрос f-1, который мы выбрали в качестве основного показателя оценки, составляет 0,68, что означает наличие возможностей для улучшения.
xgboost
Давайте попробуем модель с градиентным усилением, а также применим к ней некоторые настройки гиперпараметров. Я использовал классификатор xgboost и оптимизировал гиперпараметры с помощью hyperopt.
Как видим, все показатели значительно выросли. Отзыв положительного класса увеличился вдвое, с 0,3 до 0,6, а точность увеличилась с 0,33 до 0,75. Модель показала хорошие характеристики, о чем свидетельствует макроэкономическая оценка f-1, равная 0,81.
Важность функции
С учетом важности функции классификатора можно выделить 8 основных функций:
- days_active- сколько дней прошло с момента регистрации на момент последнего взаимодействия
- sessions_per_day - среднее количество сеансов в день, которые пользователь провел с момента регистрации.
- page_count- сколько взаимодействий пользователь имел с платформой.
- playlisted_ratio- соотношение композиций в плейлисте ко всем воспроизведенным композициям
- added_friends- сколько друзей добавил пользователь
- 7d_songs_played- сколько песен сыграл пользователь за последние 7 дней.
- Interactions_per_day - среднее количество взаимодействий, которые пользователь совершил с момента регистрации.
- thumbed_down_ratio- соотношение прокрученных композиций ко всем воспроизведенным композициям
Резюме и бизнес-рекомендации:
Исследовательский анализ данных и оценка моделей позволили нам получить ценную информацию о том, как удерживать и привлекать новых клиентов.
Анализ показал, что клиенты, проигравшие музыку, с большей вероятностью откажутся от подписки. Хотя это не может быть неожиданностью, это дает сигнал для оценки уровня новизны музыкальных рекомендаций.
Используемые в настоящее время алгоритмы для этой задачи могут предлагать песни, которые слишком отличаются от вкусов пользователей. Оптимальный уровень новизны можно определить с помощью A / B-тестирования, а разницу между песнями можно измерить как косинусное расстояние сходства.
Другое наблюдение: чем дольше клиенты используют платформу, тем меньше вероятность того, что они откажутся от подписки. Бизнес-советом будет применять скидки на премиальное членство в течение первых 3 месяцев. После того, как пользователь провел некоторое время на платформе, добавил друзей и создал плейлисты, он с большей вероятностью будет придерживаться ее дольше.
Репозиторий Github:
Https://github.com/gajdulj/spotify-customer-analysis
Подтверждение:
Спасибо Udacity за предоставленный набор данных и идею проекта.