Для телекоммуникационных компаний ключевым моментом является привлечение новых клиентов и в то же время недопущение расторжения контрактов (= оттока) для увеличения своей базы получения дохода. Глядя на отток, клиенты могут расторгнуть свои контракты по разным причинам, например, более выгодные ценовые предложения, более интересные пакеты, плохой сервис или изменение личного положения клиентов.

Аналитика оттока клиентов предоставляет ценные возможности для прогнозирования оттока клиентов, а также определения основных причин, которые его движут. Показатель оттока чаще всего отображается как процент клиентов, которые отменяют продукт или услугу в течение определенного периода (в основном месяцев). Если бы у телекоммуникационной компании было 10 млн. клиентов 1 января и получивших 500 тыс. расторженных контрактов до 31 января, ежемесячный отток за январь составит 5%.

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

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

  • Шаг 1. Определение проблемы
  • Шаг 2: Сбор данных
  • Шаг 3: Исследовательский анализ данных (EDA)
  • Шаг 4: Разработка функций
  • Шаг 5: тренировка / тестовый сплит
  • Шаг 6. Определение показателей оценки модели
  • Шаг 7: выбор модели, обучение, прогноз и оценка
  • Шаг 8: Настройка гиперпараметров / улучшение модели

Примечание: все изображения ниже созданы автором. Показанный код можно найти здесь.

Шаг 1. Определение проблемы

Основываясь на введении, ключевая задача состоит в том, чтобы предсказать, уйдет ли отдельный клиент или нет. Для этого модели машинного обучения обучаются на основе 80% выборочных данных. Остальные 20% используются для применения обученных моделей и оценки их предсказательной силы в отношении «оттока / не оттока». Другой вопрос: какие функции на самом деле вызывают отток клиентов. Эту информацию можно использовать для выявления «болевых точек» клиентов и их решения, предлагая им полезные свойства, чтобы клиенты остались.

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

Шаг 2: Сбор данных

Набор данных для этой задачи классификации взят из Kaggle и взят из коллекции образцов данных IBM (https://www.kaggle.com/blastchar/telco-customer-churn).

Создание конвейера варианта использования начинается с импорта некоторых базовых библиотек, которые необходимы на протяжении всего сценария. Сюда входят Pandas и Numpy для обработки и обработки данных, а также Matplotlib и Seaborn для визуализации.

Для этого упражнения набор данных (формат .csv) загружается в локальную папку, считывается в записную книжку Jupyter и сохраняется в Pandas DataFrame.

Шаг 3: Исследовательский анализ данных

После сбора данных выполняется несколько шагов для изучения данных. Цель этого шага - получить представление о структуре данных, провести начальную предварительную обработку, очистить данные, выявить закономерности и несоответствия в данных (т.е. асимметрия, выбросы, отсутствующие значения), а также построить и проверить гипотезы.

Понимание

В первой части EDA фрейм данных оценивается на предмет структуры, включенных столбцов и типов данных. Цели этого шага - получить общее представление о наборе данных, проверить знания предметной области и получить первые идеи по темам для исследования. На этом шаге используются некоторые стандартные функции Pandas:

Уникальные значения для каждой функции выводятся на консоль, чтобы лучше понять значения функций.

Значение функций

Изучив столбцы и их уникальные значения, можно составить общее представление о функциях. Функции также можно сгруппировать по различным категориям:

Классификационные ярлыки

  • Отток - отток клиента или нет (да или нет)

Зарезервировано обслуживание клиентов

  • PhoneService - есть ли у клиента телефонная служба (да, нет)
  • MultipleLines - наличие у клиента нескольких линий (Да, Нет, Нет телефонной связи)
  • InternetService - интернет-провайдер клиента (DSL, оптоволокно, нет)
  • OnlineSecurity - есть ли у клиента онлайн-безопасность (да, нет, нет интернет-сервиса)
  • OnlineBackup - есть ли у клиента онлайн-резервное копирование (да, нет, нет интернет-сервиса)
  • DeviceProtection - есть ли у клиента защита устройства (да, нет, нет интернет-сервиса)
  • TechSupport - есть ли у клиента техническая поддержка (да, нет, нет интернет-сервиса)
  • StreamingTV - есть ли у клиента потоковое телевидение (да, нет, нет интернет-сервиса)
  • StreamingMovies - есть ли у клиента потоковые фильмы (да, нет, нет интернет-сервиса)

Информация об учетной записи клиента

  • Срок полномочий - количество месяцев, в течение которых клиент находился в компании.
  • Контракт - Срок действия контракта с заказчиком (помесячно, один год, два года)
  • Безбумажный биллинг - есть ли у клиента безбумажный биллинг (да, нет)
  • PaymentMethod - способ оплаты клиента (электронный чек, отправленный чек, банковский перевод (автоматический), кредитная карта (автоматически)).
  • MonthlyCharges - сумма, взимаемая с клиента ежемесячно.
  • TotalCharges - общая сумма, взимаемая с клиента.

Демографические данные клиентов

  • customerID - идентификатор клиента
  • Пол - будь клиент мужчина или женщина.
  • SeniorCitizen - Является ли клиент пожилым гражданином или нет (1, 0)
  • Партнер - есть ли у клиента партнер или нет (да, нет)
  • Иждивенцы - есть ли у клиента иждивенцы (да, нет)

Предварительная обработка данных для EDA

Анализ показывает 11 пропущенных значений для «TotalCharges». Соответствующие записи данных (= строки) будут удалены для простоты.

Построение гипотез

Глядя на функции, включенные в данные, и связывая их с их потенциальным влиянием на отток клиентов, можно сделать следующие гипотезы:

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

Исследование данных

График показывает классовый дисбаланс данных между оттоком и не оттоком. Чтобы решить эту проблему, подходящим подходом будет повторная выборка. Чтобы упростить этот случай, дисбаланс сохраняется, и для оценки модели выбираются конкретные метрики.

Сюжетные идеи:

  • У сменяющихся клиентов гораздо меньший срок пребывания в должности со средним значением около ок. 10 месяцев по сравнению со средним показателем не оттока клиентов ок. 38 мес.
  • Клиенты, заменяющие клиентов, имеют более высокие ежемесячные платежи, в среднем прибл. 80 долларов США и гораздо более низкий межквартильный размах по сравнению с теми, кто не оттока (в среднем около 65 долларов США).
  • TotalCharges - это результат срока пребывания и MonthlyCharges, которые более информативны на индивидуальной основе.

Сюжетные идеи:

  • Уровень оттока пожилых людей намного выше, чем отток лиц пожилого возраста.
  • Скорость оттока для ежемесячных контрактов намного выше, чем для других сроков контрактов.
  • Умеренно более высокий отток клиентов без партнеров.
  • Значительно более высокий уровень оттока клиентов без детей.
  • Электронный чек о способе оплаты показывает гораздо более высокий уровень оттока, чем другие способы оплаты.
  • У клиентов, использующих оптоволоконный кабель InternetService в рамках своего контракта, процент оттока клиентов намного выше.

Проверьте выбросы в числовых характеристиках

Никаких выбросов в числовых характеристиках с помощью метода IQR не обнаружено - корректировок не производилось.

Очистка данных

Действия при проектировании функций

На основе типов данных и значений определены следующие действия для предварительной обработки / разработки функций для машиночитаемости и дальнейшего анализа:

Столбцы удалены

  • customerID: не актуально

Никаких действий

  • Старший гражданин

Кодирование метки. Следующие ниже функции являются категориальными и принимают 2 значения (в основном да / нет), поэтому преобразуются в двоичные целые числа.

  • Пол
  • Партнер
  • Иждивенцы
  • Отток
  • Телефонная служба
  • Безбумажный биллинг

Быстрое кодирование. Следующие функции являются категориальными, но не порядковыми (без ранжирования), но принимают более двух значений. Для каждого значения создается новая переменная с двоичным целым числом, указывающим, присутствует ли значение в записи данных или нет (1 или 0).

  • MultipleLines
  • Интернет-сервис
  • ОнлайнБезопасность
  • OnlineBackup
  • Защита устройства
  • Техническая поддержка
  • StreamingTV
  • Потоковое кино
  • Договор
  • Способ оплаты

Масштабирование от минимума до максимума. Значения числовых функций масштабируются в диапазоне от 0 до 1. Масштабирование минимума и максимума является стандартным подходом для масштабирования. Для нормально распределенных функций можно использовать стандартный масштабатор, который масштабирует значения вокруг среднего значения 0 и стандартного отклонения 1. Для простоты мы используем масштабатор min-max для всех числовых функций.

  • владение
  • TotalCharges
  • Ежемесячные платежи

Шаг 4: Разработка функций

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

Выбор / создание функций

Сюжетные идеи:

  • График показывает очень высокий уровень оттока клиентов, у которых есть 1 дополнительная услуга.
  • У клиентов с очень большим количеством дополнительных услуг действительно низкий уровень оттока.

Кодировка ярлыка

Быстрое кодирование

Изменение масштаба функции: минимальное и максимальное масштабирование

Корреляционный анализ

Шаг 5: обучение-тест-разделение

Для выполнения шагов обучения и тестирования модели набор данных делится на 80% данных обучения и 20% данных тестирования. Столбец «Отток» определяется как класс («y»), остальные столбцы - как функции («X»).

Шаг 6. Метрики оценки модели

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

  • Веса характеристик. Указывает на основные характеристики, используемые моделью для создания прогнозов.
  • Матрица неточностей: показывает сетку истинных и ложных прогнозов по сравнению с фактическими значениями.
  • Оценка точности: показывает общую точность модели для обучающего набора и набора тестов.
  • Кривая ROC: показывает диагностическую способность модели, объединяя истинно положительный (TPR) и ложноположительный (FPR) уровень для различных пороговых значений прогнозов класса (например, пороговые значения 10%, 50% или 90). % в результате прогнозируемого оттока)
  • AUC (для ROC): измеряет общую разделимость между классами модели, относящимися к кривой ROC.
  • Кривая точного отзыва: показывает диагностические возможности, сравнивая частоту ложноположительных (FPR) и ложноотрицательных (FNR) значений для разных пороговых значений прогнозов класса. Он подходит для наборов данных с дисбалансами высокого класса (отрицательные значения чрезмерно представлены), поскольку он фокусируется на точности и полноте, которые не зависят от количества истинных отрицательных значений и, таким образом, исключают дисбаланс.
  • Оценка F1: создает гармоническое среднее значение точности и запоминания и тем самым определяет компромисс между ними.
  • AUC (для PRC): измеряет общую разделимость между классами модели, относящимися к кривой Precision-Recall.

Шаг 7: Выбор модели, обучение, прогнозирование и оценка

Вначале мы протестируем несколько моделей и измерим их производительность по нескольким параметрам. Эти модели будут оптимизированы на более позднем этапе путем настройки их гиперпараметров. Используемые модели включают:

  • K Nearest Neighbours - быстро, просто и на основе экземпляров
  • Логистическая регрессия - быстрая линейная модель
  • Случайный лес - более медленная, но точная модель ансамбля, основанная на деревьях решений.
  • Support Vector Machines - здесь используется более медленная, но точная модель в нелинейной форме.

K ближайших соседей

Логистическая регрессия

Случайный лес

Машина опорных векторов

Шаг 8: Настройка гиперпараметров / улучшение модели

Чтобы устранить потенциальную погрешность, возникающую из-за особого разделения данных в части «поезд-тест-разделение», во время настройки гиперпараметров с помощью поиска по сетке и рандомизированного поиска используется перекрестная проверка. При перекрестной проверке данные обучения разбиваются на определенное количество складок. Для каждой итерации одна складка проводится как набор «обучающая разработка», а другие складки используются как обучающая выборка. Результатом перекрестной проверки являются значения k для всех показателей в k-кратном CV.

K ближайших соседей (оптимизировано)

Для KNN GridSearch CV используется для определения оптимального количества соседей (k), ведущих к наилучшей производительности модели.

Логистическая регрессия (оптимизированная)

Для логистической регрессии GridSearchCV используется для определения наилучшей модели при применении различных значений регуляризации L1 или L2, чтобы свести влияние несущественной функции к нулю (L1) или упростить модель путем релятивизации сильных шаблонов, которые выявляются во время обучения ( L2).

Случайный лес (оптимизированный)

Для модели случайного леса RandomizedSearchCV используется для оптимизации по нескольким гиперпараметрам, включая n_estimators, max_features, max_depth, критерий и бутстрап.

Машина опорных векторов (оптимизирована)

Для SVM GridSearchCV используется для определения значения C для оптимального запаса вокруг вектора поддержки.

Надстройка: нейронная сеть прямого распространения

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

Резюме

Резюме модели

Если посмотреть на результаты модели, то наивысшая точность на тестовом наборе достигается нейронной сетью с 0,7996. Учитывая высокий дисбаланс данных по отношению к тем, кто не отменит, имеет смысл сравнить баллы F1, чтобы получить модель с лучшим баллом по совокупной точности и отзыву. Это также будет нейронная сеть с оценкой F1 0,5948.

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

Проверка гипотез

Глядя на результаты оценки, в частности, веса характеристик из логистической регрессии, гипотезы могут быть поддержаны или отклонены:

  • Срок действия контракта. Ежемесячный срок действия контракта - второй по величине фактор оттока клиентов → поддерживается
  • Количество дополнительных услуг: эта функция не входит в число основных функций → отказано
  • Партнеры и дети: наличие детей считается четвертой особенностью, которая заставляет не сбиваться с пути, но сила относительно невысока → частично поддерживается
  • Срок владения: высокий срок владения - это самый сильный фактор, позволяющий избежать сбоев, и самая сильная особенность в целом. Это также поддерживается коробчатой ​​диаграммой на этапе EDA. → поддерживается
  • Ежемесячный платеж: общие платежи, которые складываются из срока владения и ежемесячного платежа, являются самым сильным фактором оттока. Косвенно высокие ежемесячные платежи приводят к оттоку. Тем не менее, срок пребывания в должности - главный фактор, позволяющий отказаться от сбрасывания → отказано.
  • Пожилые люди: пожилые люди не имеют большого веса. Также процент оттока пожилых людей намного выше, чем у тех, кто не отозвался → отказался

Перспективы

У телекоммуникационных компаний обычно имеется гораздо больше доступных данных, которые можно было бы включить в анализ, например расширенные данные о клиентах и ​​транзакциях из CRM-систем и операционные данные о предоставляемых сетевых услугах. Кроме того, в их распоряжении обычно гораздо большее количество событий оттока / отсутствия оттока, чем у ca. 7000 в данном случае, например. С их помощью нейронные сети можно было бы должным образом обучить обнаруживать более сложные закономерности в данных и достигать более высокой точности. Высокая точность необходима, чтобы иметь возможность идентифицировать многообещающие случаи, когда оттока клиентов можно избежать, поскольку, в конечном итоге, защищенные возвраты клиентов должны перевесить затраты на соответствующие кампании по удержанию.