В этом случае я использую набор данных от Telecom Customer, также это мой первый отчет о проекте ML, так что просто примите его XD

Телекоммуникационные компании стремятся обеспечить лучший сервис для своих клиентов. Однако, несмотря на их усилия, некоторые клиенты все же покидают их сервис. Это явление широко известно как отток. Прогнозирование оттока — это процесс выявления клиентов, которые могут покинуть поставщика услуг, что позволяет компании принимать превентивные меры для их удержания. Одним из решений является использование машинного обучения для целенаправленной работы с постоянными клиентами.

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

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

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

Функции

  1. customerID: уникальный идентификатор для каждого клиента
  2. Пол: мужской или женский
  3. SeniorCitizen: старшее или младшее поколение
  4. Партнер: есть партнер или одинокий
  5. Иждивенцы: есть иждивенцы или нет
  6. Срок пребывания: продолжительность пребывания клиента (месяцы)
  7. Контракт: тип услуги по контракту
  8. PaperlessBilling: есть или нет безбумажный биллинг
  9. PaymentMethod: способ оплаты услуги
  10. MonthlyCharges: сумма платежей каждый месяц.
  11. TotalCharges: общая сумма расходов.
  12. Отток (целевой): лояльный клиент или отток

1. Исследовательский анализ данных (EDA)

Мы можем исследовать и анализировать данные. Поэтому мы можем выдвинуть нашу гипотезу.

Как мы видим выше, для числовых характеристик «Срок владения», «Ежемесячные расходы», «Общие расходы» не являются выбросами.

Между тем ниже приведено распределение с правым перекосом.

Следующий рисунок ниже — это диаграмма, показывающая категориальные функции.

Согласно диаграммам выше, клиенты имеют:

  • никакие иждивенцы или партнеры не склонны к оттоку
  • ежемесячные контракты имеют тенденцию к оттоку
  • безбумажный биллинг имеет тенденцию к оттоку
  • электронные способы оплаты имеют тенденцию к оттоку

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

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

После проверки отсутствующих значений в данных имеется 127 или 1,8% отсутствующих значений. Так как это менее 5%, следовательно, мы можем отбросить недостающие значения.

Между тем, есть 35 повторяющихся строк, поэтому мы можем удалить повторяющиеся строки из данных.

Некоторые функции пока в тексте, а другие уже в числовом виде.

3. Проверка мультиколлинеарности

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

Поскольку коэффициент корреляции с целью составляет ‹ 0,5, это указывает на отсутствие мультиколлинеарности.

Расчет показателей VIF (коэффициент инфляции дисперсии) для проверки возможности мультиколлинеарности признаков с целевыми признаками.

Поскольку оценка VIF «TotalCharges» составляет › 5, поэтому необходимо исключить «TotalCharges». Результат мы можем видеть ниже.

Оценка VIF ниже 5, поэтому мы можем перейти к следующему шагу.

4. Разделить данные на набор поездов и тестовый набор

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

5. Кодирование и масштабирование функций

После разделения данных мы можем выполнить кодирование меток для функций «Пол», «Партнер», «Зависимые», «Безбумажный выставление счетов» и однократное кодирование для функций «Контракт», «Способ оплаты» как для обучающего, так и для тестового набора данных. Также мы можем масштабировать «Срок владения» и «Ежемесячные платежи» по числовым данным до 0–1, что упрощает изучение проблемы моделью.

Поскольку «SeniorCitizen» уже в двоичном формате, другие столбцы, которые должны кодировать метки, — это «пол», «Партнер», «Иждивенцы», «Безбумажный выставление счетов», «Отток».

А для категориальных функций, таких как «Контракт» и «Способ оплаты», можно использовать однократное кодирование.

Наконец мы уже закодировали и масштабировали данные.

6. Несбалансированная обработка набора данных

Из-за того, что целевые функции («Churn») не сбалансированы, поэтому нам нужно сбалансировать цель с передискретизацией с помощью SMOTE.

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

7. Моделирование

Для достижения оптимальной производительности для прогнозирования оттока можно использовать 4 модели машинного обучения: логистическая регрессия, классификатор KNN, случайный лес и экстремальное повышение градиента (XGB). Можно использовать две версии каждой модели: базовую и тюнинговую.

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

Существенных изменений до и после настройки модели логистической регрессии не произошло.

Поэтому мы можем перейти к следующей модели.

б. КНН Соседи

Кажется, что модель KNN Neighbours имеет лучшую модель производительности до настройки.

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

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

После настройки производительность Random Forest кажется неплохой, за исключением точности. Кроме того, после настройки значительно уменьшилось переоснащение.

Пока мы можем оставить эту модель как лучшую, поэтому мы можем увидеть следующую модель.

д. Экстремальное повышение градиента

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

8. Заключение

Из 4 моделей можно сделать вывод, что Random Forest является лучшей моделью без переобучения, точностью 84% и имеет наивысшее значение отзыва для минимизации потерь из-за неправильного прогноза оттока клиентов (ложноотрицательный результат). Хотя показатель F1, равный 84%, является довольно хорошим показателем, поэтому нам необходимо улучшить его, собрав больше данных, которые могут иметь более высокий показатель шансов.

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