Применение упорядоченной структуры на примере оттока клиентов
В данном примере пошагово рассматривается процесс формулирования задач машинного обучения. Здесь объясняется, как использовать бизнес-опыт в сочетании с такими понятиями, как триггер события, цель, точка прогнозирования и признаки, чтобы четко сформулировать задачу.
Отправной точкой является бизнес-сценарий: «Уйдет ли клиент?» С помощью упорядоченной структуры этот сценарий будет сведен к чему-то более конкретному, что может спрогнозировать алгоритм машинного обучения.
Триггер события
Триггер события — это действие или событие, которое инициирует создание нового прогноза. Триггером события в данном случае является оформление подписки клиентом. Это отображается в данных как создание нового клиента. Цель — спрогнозировать на уровне клиентов, отменят ли они подписку, поэтому каждый клиент должен быть представлен в отдельной строке.
Благодаря бизнес-опыту и проверке данных, известно, что наибольший отток наблюдается среди новых клиентов. Поэтому принято решение сосредоточиться именно на новых клиентах. Триггером события является оформление подписки новым клиентом, и можно предположить, что у каждого клиента есть своя временная шкала, которая начинается в день оформления подписки.
Цель
Цель — это результат, который необходимо спрогнозировать. В данном случае нужно спрогнозировать отток, поэтому общая цель: понять, уйдет ли клиент. Однако для создания качественной модели машинного обучения требуется более конкретный подход к решению этой бизнес-задачи. Для начала давайте определимся, что «отток» — это когда клиент звонит нам, чтобы отменить свою подписку.
Затем необходимо определить временной интервал (горизонт), в течение которого клиент должен сделать звонок с просьбой об отмене подписки. При анализе нескольких клиентов, которые отменили подписку, можно заметить, что их временные шкалы не совпадают. Некоторые клиенты отменили подписку через 45 дней, а другие — гораздо позже, через 110 дней.
Компания предлагает бесплатную пробную подписку на 90 дней. Известно, что многие клиенты уходят по окончании пробного периода. Исходя из этого бизнес-контекста, первоначальная мысль — использовать горизонт в 90 дней. Спрогнозировав, кто, скорее всего, отменит подписку, можно заранее связаться с этими клиентами и предложить им особые условия (например, скидки или дополнительные функции подписки), чтобы побудить их остаться.
Гистограмма, на которой показано, через сколько дней после оформления подписки клиенты отменяют ее, подтверждает нашу бизнес-интуицию. На графике отображены данные по всем клиентам, которые отменили подписку за последние три года.
Выбор 90-дневного горизонта кажется хорошим началом. Однако, начертив линию горизонта на гистограмме, видно, что многие клиенты отменяют подписку в течение нескольких дней после окончания 90-дневного пробного периода. Причина может заключаться в том, что клиенты получают уведомление о списании средств с их кредитной карты или об отклонении способа оплаты спустя несколько дней и только после этого звонят, чтобы отменить подписку.
Поскольку этих клиентов также необходимо включить в модель как «ушедших», то целесообразнее использовать горизонт в 110 дней. При использовании 110-дневного периода учитывается большинство клиентов, отток которых, скорее всего, связан с окончанием срока действия бесплатной пробной подписки.
Теперь, когда цель определена, можно определить, где хранятся данные и как их очистить, чтобы создать целевой столбец в наборе данных. В данном примере выполняются следующие действия.
-
Получение состояния клиента из Salesforce.
-
Извлечение состояния, даты создания клиента и даты отмены подписки.
-
Очистка и преобразование извлеченных данных в целевой столбец.
Теперь у нас есть триггер события (новый клиент оформил подписку) и цель (клиент позвонил, чтобы отменить свою подписку в течение 110 дней после ее оформления). Они показаны на временной шкале на рисунке.
Точка прогнозирования
Точка прогнозирования — это заданное время, когда прекращается сбор данных признаков и выполняется прогнозирование цели для каждой строки. Точка прогнозирования может находиться в любом месте между триггером события (день оформления подписки) и горизонтом (110-й день после оформления подписки). Чтобы выбрать отправную точку, подумайте о том, какое действие вы хотите предпринять.
В данном примере служба поддержки попросила 30 дней на то, чтобы обратиться к клиентам с предложениями, способствующими их удержанию, после того как был спрогнозирован отток. Это означает, что прогнозирование необходимо выполнить как минимум за 30 дней до горизонта, то есть на 80-й день.
Выбрав 80-й день в качестве точки прогнозирования, у нас будет 80 дней на сбор данных о новых клиентах по мере оформления ими подписки. Этот временной интервал между триггером события и точкой прогнозирования называется окном сбора данных. Данные, собранные во время окна сбора данных, используются для генерации признаков.
Использование 80-го дня в качестве точки прогнозирования оставляет 30-дневное окно для действий, которое представляет собой промежуток времени между точкой прогнозирования и горизонтом. Это 30-дневное окно, которое попросила служба поддержки, чтобы обратиться к клиентам с предложениями, способствующими их удержанию.
Помимо определения минимального окна для действий, которые необходимо предпринять по результатам прогнозирования, также следует изучить гистограмму с количеством дней до отмены подписки. При использовании точки прогнозирования на 80-й день получается следующее:
Глядя на эту гистограмму, можно сделать вывод, что использование точки прогнозирования на 80-й день не позволяет достичь максимальных коммерческих результатов. Хотя данные за 80 дней и помогают повысить точность модели, за это приходится платить временем, необходимым для практических действий.
-
Во-первых, к 80-му дню многие клиенты уже ушли, то есть они отменили подписку в период сбора данных — еще до того, как были сделаны какие-либо прогнозы. Из этого также следует, что их не нужно включать в набор данных для обучения, поскольку результат известен еще до начала прогнозирования.
-
Во-вторых, многие клиенты уходят с 80-го по 90-й день, поэтому у службы поддержки не будет полных 30 дней, чтобы связаться с такими клиентами.
Перемещение точки прогнозирования на 60-й день обеспечивает лучший баланс между точностью и практическими действиями. Для сбора данных признаков, которые можно использовать в модели, все еще остается 60 дней, но сейчас прогнозирование выполняется достаточно рано и у службы поддержки есть 30 дней, чтобы связаться с большинством клиентов, которые, как показывают результаты прогнозирования, отменят свою подписку. Уменьшение окна сбора данных приведет к небольшому снижению точности модели, но при этом получится гораздо более эффективный прогноз.
Признаки
Когда триггер события, цель и точка прогнозирования определены, остается добавить в набор данных последний компонент: признаки. Признаки — это известные атрибуты или наблюдения для каждой строки данных в наборе данных для обучения, с помощью которых алгоритмы машинного обучения выявляют общие закономерности. Затем алгоритмы используют эти признаки для создания прогнозов при появлении новых строк данных в наборе данных для применения.
Представьте, что признаки — это гипотезы, основанные на бизнес-опыте, который позволяет определить, что влияет на результат. В данном примере признаками можно считать местоположение клиента, источник лида, месяц оформления подписки, количество входов в систему и количество активных пользователей.
Существует две категории признаков.
-
Постоянные признаки являются самыми простыми, так как они не меняются со временем. В данном примере к постоянным признакам относятся местоположение клиента (на момент оформления подписки), источник лида и месяц оформления подписки. Они становятся известны, как только клиент оформит подписку (в момент наступления события), и независимо от того, где будет находиться точка прогнозирования, эти признаки всегда будут известны и постоянны.
-
Признаки, зависимые от окна, немного сложнее. Это признаки, которые определяются на основе данных, собранных между моментом наступления события и точкой прогнозирования. Важно убедиться, что используются только данные, известные на момент прогнозирования, в противном случае при обучении модели может произойти утечка данных. (Для получения дополнительной информации см. раздел Утечка данных.)
Простая модель может использовать только данные, известные в день 0, то есть только постоянные признаки. Таким образом, точка прогнозирования будет находиться в 0-м дне, как показано на рисунке.
Результирующий набор данных будет выглядеть примерно так:
Также можно использовать данные, собранные после того, как клиент оформил подписку, как в примере с точкой прогнозирования в 60-м дне.
Теперь можно использовать данные, собранные за первые 60 дней после оформления подписки, чтобы добавить в модель признаки, зависимые от окна. Набор данных для этой модели может выглядеть как таблица, приведенная ниже: теперь он включает признаки, зависимые от окна, такие как количество входов в систему за первые 60 дней и активные пользователи за 60 дней.
Обратите внимание, что в данном примере признаки охватывают все окно сбора данных. Они также могут охватывать меньший интервал. Например, можно определить количество входов в систему за первые 10 дней или с 30-го по 60-й день при условии, что признаки не содержат данных, которые станут известны после точки прогнозирования.
Сбор признаков, зависимых от окна, может быть более сложным, так как они требуют указания дат и дополнительных усилий на то, чтобы убедиться, что они находятся в пределах окна сбора данных, и тем самым исключить утечку данных. Кроме того, эти признаки могут быть одними из самых важных, поскольку они могут охватывать данные, собранные максимально близко к точке прогнозирования.
Результирующая формулировка задачи машинного обучения
Отправной точкой в данном примере является простой сценарий использования: «Уйдет ли клиент?» Затем был определен триггер события как «Новый клиент оформил подписку», поскольку необходимо было выполнить прогнозирование на уровне отдельного клиента.
Мы также определили цель с конкретным результатом — «Клиент позвонил, чтобы отменить свою подписку» («Да» или «Нет») — и установили горизонт в 110 дней, так как именно в течение этого времени большинство клиентов отменяют свою подписку после пробного периода.
Проанализировав гистограмму, которая показывает, через сколько дней после оформления подписки клиенты звонили с просьбой об ее отмене за последние три года, было решено выбрать точку прогнозирования в 60-м дне после оформления подписки. Таким образом, у нас будет 60 дней на сбор данных (окно сбора данных), перед тем как создать прогноз, а у службы поддержки будет время для того, чтобы предпринять какие-либо действия по результатам прогнозирования, направленные на снижение оттока клиентов.
И наконец, мы собрали данные о клиентах, которые были доступны до 60-го дня, чтобы использовать их для генерации признаков.
В результате была сформулирована следующая задача машинного обучения: «Позвонит ли клиент после первых 60 дней подписки с просьбой отменить ее до 110-го дня?»
Набор данных, который теперь готов к использованию для автоматизированного машинного обучения, выглядит так, как показано в таблице ниже. Местоположение, источник лида, месяц оформления подписки и стоимость подписки — это постоянные признаки, количество входов в систему за первые 60 дней и активные пользователи за 60 дней — это признаки, зависимые от окна, а показатель оттока за 110 дней представлен в целевом столбце.