Отток и пожизненная ценность клиента: часть 3

Это третий пост из серии, посвященной оттоку и пожизненной ценности клиента (Введение в отток и Введение в LTV). Есть много способов предсказать уровень оттока на уровне отдельного клиента. В этой статье мы подробно рассмотрим три из них:

  1. Статистические модели, такие как Парето/NBD, BD/NBD и Гамма-гамма
  2. Анализ выживания
  3. Машинное обучение

Давайте опробуем эти три модели на открытом наборе данных Kaggle WSDM — KKBox’s Churn Prediction Challenge. Полный код доступен в Блокноте Jupyter. В этом наборе данных у нас есть пользователи службы потоковой передачи музыки KKBOX вместе с их атрибутами, историями транзакций и меткой оттока (уйдет ли клиент в течение следующих 30 дней). Из-за характера бизнеса клиенты могут приостанавливать подписки или изменять интервалы подписки, что делает этот набор данных как договорным, так и внедоговорным одновременно. Это означает, что клиент, который ставит подписку на паузу, не обязательно уходит, в отличие от ситуации в телекоме.

Набор данных содержит три интересующие нас таблицы:

  1. Участники - информация о клиентах, такая как пол, возраст и т.д.
  2. Этикетка Train-Churn для каждого клиента.
  3. Транзакции — исторические транзакции с датами, планами подписки и т. д.

Во-первых, давайте попробуем оценить вероятность оттока исключительно на основе давности (сколько дней с тех пор, как мы в последний раз видели клиента). Для этого мы выберем конкретную дату (например, 31.12.2016) и всех клиентов, совершивших покупку в этот день (когорту). Затем для каждого следующего дня мы будем строить график доли ушедших клиентов из этой когорты клиентов, которые еще не совершили покупку. Такой график покажет нам ошибку определения оттока исходя из того, сколько дней мы не видели клиента. Например, каков будет наш средний уровень ложных срабатываний, если мы определим отток как 45 дней бездействия?

Для этого набора данных кажется, что 30 дней — идеальное значение, чтобы пометить такого клиента как уволенного. В данном конкретном случае это связано с характером набора данных (у нас есть активные клиенты, которые совершили покупки в марте 2017 года, а не клиенты, которые совершали покупки в любое время). В любом случае, этот тип диаграммы может быть полезным инструментом для изучения ваших клиентов.

Парето/НБД

Теперь давайте приступим к реальному моделированию оттока с помощью нашего первого типа модели: Парето/NBD.

Мы будем использовать замечательную библиотеку с реализацией таких моделей под названием жизни.

Чтобы соответствовать такой статистической модели, нам нужны только три функции:

  • Количество заказов.
  • Срок владения (разница между текущей датой и датой первой транзакции).
  • Недавность (разница между датами последней и первой транзакции). Это сбивает с толку, потому что давность обычно определяется как текущая дата минус дата последней транзакции, но давайте придерживаться терминологии библиотеки.

Во-первых, давайте посмотрим на способность статистических моделей предоставлять исследовательскую информацию.

После того, как мы подогнали модель, мы можем оценить количество будущих покупок на следующую единицу времени (в нашем случае это один месяц). Мы видим, что самые ценные клиенты — это самые старые (последние, используя определение пакета Lifetimes), которые совершают много покупок (высокая частота). Это несколько очевидный результат, но что ценно, так это то, что теперь эта взаимосвязь определяется количественно. Например, мы видим, что на ранних этапах одна покупка в месяц не гарантирует, что клиенты будут продолжать покупать. На более поздних этапах (клиенты на 1–2 года) они все еще являются ценными клиентами, даже если покупают раз в два месяца.

Теперь давайте рассчитаем четыре метрики для оценки эффективности прогнозирования модели:

  • ROC AUC — это наиболее часто используемый показатель производительности для двоичной классификации. Значение 0,5 означает, что прогноз абсолютно случайный. 1.0 означает идеальный прогноз.
  • Log Loss — эта метрика позволяет нам оценить не только правильность бинарного прогноза (отток или нет), но и близость оценки вероятности. Другими словами, если фактическая вероятность оттока для некоторых клиентов составляет 0,8, а наша модель говорит нам, что она равна 0,3, с точки зрения ROC AUC, она все еще может быть идеальной моделью (неважно, насколько мы далеки от фактической вероятности). пока у нас не будет хорошего порогового значения для разделения классов). Но с точки зрения Log Loss это плохая модель. Чем ниже значение, тем лучше. Идеальное значение равно 0 без верхней границы. Хороший способ понять, является ли значение хорошим или нет, — сравнить его со случайными предположениями.
  • Кривые ROC и Precision-Recall — они аналогичны ROC AUC, но дают визуальное представление о качестве модели.
  • Калибровочная кривая. Эта кривая показывает нам, насколько наши оценки вероятности далеки от фактической вероятности оттока.

На этот раз для целей прогнозирования мы будем использовать модель Парето/NBD. Это более точно, но требует больше времени для обучения.

Результаты неплохие, особенно учитывая тот факт, что мы использовали только три функции. ROC AUC составляет 0,77, что определенно не случайно. Но, как мы видим, Log Loss довольно высок, а это означает, что у этой модели есть трудности с оценкой вероятности оттока. Такие оценки имеют решающее значение для прогнозирования LTV.

Из калибровочной кривой видно, что модель присваивает низкие вероятности. Например, клиенты с фактической вероятностью оттока 0,6 имеют в среднем вероятность прогнозирования 0,2.

Резюме

Плюсы:

  • Статистически или научно обоснованная модель.
  • Обеспечивает хорошее готовое соответствие вашим данным. Точность в среднем для всех клиентов.
  • Предоставляет инструменты для объяснения поведения ваших клиентов. После оценки параметров модели мы можем использовать их для оценки показателей жизненного цикла клиента.
  • Хорошо работает для внедоговорных предприятий.

Минусы:

  • Сложно добавить новые функции в модель. Общими чертами являются частота, новизна и денежная стоимость, которые обычно являются наиболее важными факторами. Однако, если вам нужно добавить что-то сверх этого, вам нужно будет добавить их в модель как ковариаты.
  • Хотя эти модели хороши для средних оценок, они не демонстрируют высочайшей точности на индивидуальном уровне.

Анализ выживания

Наш второй подход заключается в использовании анализа выживания, который хорош для договорных предприятий.

Существует еще одна библиотека Python от того же автора, которая называется LifeLines.

Опять же, давайте посмотрим, как такой анализ может помочь нам на этапе исследования. Мы можем построить кривые Каплана-Мейера, чтобы увидеть, как вероятность выживания (1 — отток) зависит от срока пребывания клиента.

Такие кривые дают нам возможность сравнивать разные группы клиентов и, таким образом, оценивать, влияет ли та или иная функция на вероятность оттока или нет.

Например, мы видим, что auto_renew значительно снижает вероятность оттока.

Также мы видим, что есть три группы способов оплаты, которые существенно влияют на вероятность оттока. Для бизнеса это говорит о том, что очень важно убедить клиентов использовать один способ оплаты вместо другого.

Теперь давайте обучим нашу модель выживания, используя способ оплаты и особенности владения.

ROC AUC относительно аналогичен показателю модели Парето/NBD (0,76), но логарифмическая потеря намного лучше. Тем не менее, 0,31 слишком много. Как правило, это хорошая модель, но опять же, она подвержена аналогичным проблемам при оценке фактической вероятности оттока.

Резюме

Плюсы:

  • Вместо того, чтобы предсказывать вероятность оттока, анализ выживания предсказывает, когда клиент уйдет.
  • Содержит удобные инструменты, такие как кривая выживания Каплана-Мейера, которая дает общее представление об оттоке клиентов.
  • Легко добавлять ковариаты (дополнительные функции, такие как пол или любые другие).
  • Предоставляет метод выбора признаков через доверительные интервалы коэффициентов модели.
  • Хорошо работает для контрактных предприятий.

Минусы:

  • Не подходит для неконтрактных предприятий.

Подход к машинному обучению

Теперь давайте разобьем нашу проблему универсальным молотком: машинное обучение.

Давайте воспользуемся методом случайного леса с теми же функциями, которые мы использовали в модели выживания.

Даже с теми же функциями он показывает гораздо лучшую производительность: ROC AUC составляет 0,80, а Log Loss — 0,20. Наконец, у нас есть модель с лучшей оценкой вероятности оттока, чем случайное угадывание.

Кроме того, мы можем легко увидеть относительную важность функций, которые могут помочь уверенно принимать бизнес-решения.

Но что, если мы используем больше функций, таких как количество заказов, давность и is_auto_renew?

Результат даже лучше. ROC AUC становится равным 0,85, а Log Loss — 0,17. На данный момент у нас уже есть модель, которая может быть достаточно хороша для реализации, и она должна помочь нам прогнозировать уровень оттока клиентов намного лучше, чем некоторые модели, основанные на правилах.

Резюме

Плюсы:

  • Легко реализовать любую бизнес-функцию.
  • Применимо как для контрактных, так и для бесконтрактных бизнес-моделей
  • Проработанные показатели качества
  • Хорошо работает для прогнозов на индивидуальном уровне.

Минусы:

  • Для внеконтрактной установки требуется определение оттока, которое может быть искусственным и субъективным.

Вывод

В этой статье мы сравнили разные подходы к моделированию оттока, описав их плюсы и минусы. Статистические модели и анализ выживания полезны для исследования данных и лучшего понимания ваших клиентов. Между тем, модели машинного обучения часто лучше с точки зрения гибкости, показателей точности и оценки вероятности оттока.

При этом прогнозирование оттока всегда зависит от того, насколько хорошо вы понимаете своих клиентов, поэтому полезно анализировать их с разных сторон. Иногда достаточно простой модели. В других случаях вам могут понадобиться некоторые продвинутые приемы для достижения желаемой точности.

Я хотел бы подчеркнуть, что материал, рассмотренный в этой статье, является лишь введением в прогнозирование оттока, и индивидуальные потребности будут зависеть от варианта использования. Благодаря многолетнему опыту мы в Plytrix накопили значительный опыт как в создании эффективных моделей оттока, так и в предоставлении компаниям возможности реализовывать стратегии сокращения оттока с использованием этих моделей.

Независимо от вашего случая, мы будем рады обсудить ваши потребности и помочь в этих усилиях. Вы можете заказать бесплатный ознакомительный звонок по этой ссылке.

Если вам понравился этот пост, подпишитесь на нашу публикацию или подпишитесь на нашу рассылку.

Первоначально опубликовано на https://www.plytrix.io.