1.0 Введение

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

В этой статье я кратко излагаю свой проект машинного обучения, целью которого было предсказать, уйдет ли клиент Vodafone (телекоммуникационной компании). Он также включает некоторые рекомендации о том, что можно сделать, чтобы уменьшить отток. Структура CRISP-DM была адаптирована для руководства этим проектом.

2.0 Понимание данных

2.1 Набор данных

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

  • Пол: является ли покупатель мужчиной или женщиной.
  • SeniorCitizen: является ли клиент пожилым гражданином или нет.
  • Партнер: есть ли у клиента партнер или нет.
  • Иждивенцы: есть ли у клиента иждивенцы или нет.
  • Tenure: количество месяцев, в течение которых клиент оставался в компании.
  • Телефонная служба: есть ли у клиента телефонная служба или нет.
  • Несколько строк: есть ли у клиента несколько строк или нет.
  • InternetService: интернет-провайдер клиента.
  • OnlineSecurity: есть ли у клиента онлайн-защита или нет.
  • OnlineBackup: есть ли у клиента онлайн-резервное копирование или нет.
  • DeviceProtection: есть ли у клиента защита устройства или нет.
  • Техническая поддержка: есть ли у клиента техническая поддержка или нет.
  • StreamingTV: есть ли у клиента потоковое телевидение или нет.
  • StreamingMovies: есть ли у клиента потоковые фильмы или нет.
  • Контракт: срок контракта клиента.
  • Безбумажный биллинг: есть ли у клиента безбумажный биллинг или нет.
  • Способ оплаты: способ оплаты клиента.
  • MonthlyCharges: сумма, взимаемая с клиента ежемесячно.
  • TotalCharges: общая сумма, списанная с клиента.
  • Отток: ушел ли клиент или нет.

2.2 Гипотезы и вопросы

Чтобы начать процесс исследования, были выдвинуты некоторые гипотезы и заданы вопросы, ответы на которые помогут лучше понять поведение клиентов Vodafone. Они следующие:

  1. Клиенты с партнерами и иждивенцами уходят меньше
  2. Каково распределение клиентов по пенсионному возрасту и как происходит их отток?
  3. Что касается продолжительности пребывания в должности, какой круг пользователей уволился меньше всего?
  4. На каком уровне владения мы теряем большинство клиентов?
  5. Клиенты, срок пребывания которых превышает средний, с меньшей вероятностью уйдут
  6. Пользователи, которые не пользуются телефонной связью, отдают больше, чем пользователи телефонной связи.
  7. Приводит ли использование нескольких линий к снижению оттока?
  8. Пользователи DSL уходят больше, чем пользователи оптоволокна
  9. Пользователи, которые транслируют и телепрограммы, и фильмы, уходят меньше, чем те, кто транслирует только одно
  10. Клиенты с техподдержкой уходят меньше

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

На этом этапе данные проверялись для обеспечения чистоты, согласованности и качества.

3.1 Библиотеки и пакеты

Библиотеки и пакеты, загруженные для использования в проекте:

  • Для очистки и обработки данных: Pandas, NumPy, SMOTE.
  • Для визуализации: Matplotlib, Plotly, Seaborn.
  • Для обработки предупреждений: Предупреждения
  • Для моделирования: CatBoost, LightGBM, Scikit-learn, XGBoost.

3.2 Предварительный просмотр и обработка данных

  • В данных было 7043 строки и 21 столбец.
  • На первый взгляд не было пустых значений, однако попытка преобразовать столбец TotalCharges (object) в числовой привела к ошибке, которая в конечном итоге привела к открытию, что В 11 записях не указаны общие расходы. Дальнейшее расследование показало, что эти записи имели 0 для срока пребывания, что означает, что они не были в Vodafone достаточно долго, чтобы нести полную плату. Таким образом, они считались нулевыми и отбрасывались, прежде чем приступить к анализу и моделированию.
  • Набор данных с идентификаторами клиентов не содержит дубликатов. После проверки на наличие дубликатов столбец CustomerID был удален.
  • После удаления пустых значений и столбца CustomerID набор данных содержал 7032 строки и 20 столбцов.
  • В целях исследования значения в столбце SeniorCitizen (0 и 1) были преобразованы в «Нет» и «Да» для простоты анализа.
  • Набор данных был несбалансированным, с большим количеством наблюдений, принадлежащих к классу "не взбитых". Подробнее об этом в следующем разделе.

3.3 Предположения

  • Предполагается, что сумма указана в долларах США.

4.0 Ответы на вопросы

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

Вопрос 1. Клиенты с партнерами и иждивенцами уходят меньше

Основываясь на результатах, как показано в таблицах ниже, мы отмечаем, что у клиентов с партнерами и иждивенцами уровень оттока составляет 14%, а у тех, у кого нет партнеров и иждивенцев, показатель оттока составляет около 32%.
При этом мы принимаем гипотезу.

Q2: Каково распределение клиентов по возрастному статусу и как происходит их отток?

На IMG 4.3 ниже мы видим, что большинство клиентов Vodafone не являются пенсионерами. IMG 4.4 также показывает, что пожилые люди увольняются чаще, чем обычные; коэффициент оттока составил 41,68% и 23,65% соответственно. Несмотря на проценты, необработанные значения оттока для не пожилых людей были выше, чем для пожилых людей из-за разницы в их итогах в наборе данных. В любом случае отток пожилых людей должен быть расследован и немедленно приняты корректирующие меры.

Вопрос 3–4. С точки зрения продолжительности пребывания в должности, какой круг пользователей уволился меньше всего?

Из диаграмм в IMG 4.5 видно, что большинство ушедших клиентов были в возрасте от 1 до 29 месяцев, а клиенты, прошедшие отметку в 29 месяцев, как правило, уходили меньше. Поскольку большинство клиентов Vodafone попадали в группу со сроком действия от 1 до 29 месяцев, было столь же понятно, как и вызывало беспокойство, что уровень оттока для этого диапазона был высоким. Это было понятно, потому что клиенты могли приходить и уходить в любое время, и именно тогда они приходили больше всего. Это также вызывало беспокойство, потому что ставит вопрос об эффективности стратегии удержания «новых клиентов».

Q5: Клиенты, которые превышают средний срок владения, с меньшей вероятностью уйдут

Согласно сводной таблице (IMG 4.6), средний срок пребывания в должности составлял около 32 месяцев. Из визуализации распределения оттока (IMG 4.5) мы также отметили, что клиенты, которые оставались на сайте более 29 месяцев, с меньшей вероятностью уходили. Основываясь на этом, мы можем принять гипотезу о том, что клиенты, которые превышают средний срок пребывания в должности, с меньшей вероятностью уйдут.

Вопрос 6. Пользователи, не пользующиеся телефонной связью, отстают больше, чем пользователи телефонной связи.

Пропорции в IMG 4.7 показывают, что на более высоком уровне вероятность оттока пользователей телефонных услуг такая же, как и у тех, кто не пользуется телефонными услугами. Однако на микроуровне пользователи телефонных услуг — с уровнем оттока 26,75% — более склонны к оттоку, чем пользователи, не пользующиеся телефонными услугами — с уровнем оттока 25%. Основываясь на этом, мы отвергаем гипотезу о том, что пользователи, не пользующиеся телефонной связью, уходят больше, чем пользователи телефонной связи.

Q7: Приводит ли использование нескольких линий к снижению оттока?

Несмотря на разницу в количестве пользователей с несколькими линиями (2 967) и пользователей, не использующих несколько линий (3 385), пропорции оттока не так уж сильно различаются. Доля пользователей без нескольких линий составила 25,08%, а пользователей с несколькими линиями - 28,65%. На основании этого гипотеза отвергается, так как использование нескольких линий не привело к снижению оттока. Пропорции показаны на IMG 4.8 ниже.

Q8: Пользователи DSL уходят больше, чем пользователи оптоволокна

Большое количество клиентов воспользовалось услугами оптоволоконного интернета (3 096); за ними последовали пользователи DSL (2 416 человек), а осталось 1 520 человек, которые не пользовались интернет-услугами. К сожалению, вероятность оттока пользователей оптоволоконных услуг вдвое выше, чем у пользователей DSL (41,89% против 19,00%). Наименьшая доля оттока пользователей, не пользующихся Интернетом, составила 7,43%. С этим открытием гипотеза отвергается, поскольку пользователи DSL не теряют больше, чем пользователи оптоволокна. Распределение значений в столбце и пропорции оттока показаны на IMG 4.9 и IMG 4.10 ниже.

Q9: Пользователи, которые транслируют и телепрограммы, и фильмы, уходят меньше, чем те, кто транслирует только одно

Сводные таблицы (IMG 4.11 и IMG 4.12) показывают, что пользователи, которые транслируют как фильмы, так и телепрограммы, отстают меньше, чем те, кто использует и то, и другое, поэтому гипотеза принимается. Это может свидетельствовать о том, что клиенты, использующие потоковую передачу обоих сервисов, считают, что их потребности в потоковой передаче полностью удовлетворены. Однако мы должны отметить, что разница в процентах составляет всего около 1 процентного пункта, что указывает на то, что на более высоком уровне тот, кто транслирует оба, с такой же вероятностью откажется, как и тот, кто транслирует один.

Q10: Клиенты со службой технической поддержки уходят меньше

Клиенты, получившие техническую поддержку, составили менее половины от общего числа клиентов. У них был показатель оттока 15,20%, в то время как у клиентов, которые не получали техническую поддержку, показатель оттока составлял 41,65%. Это особенно беспокоило, поскольку техническая поддержка имеет решающее значение для предоставления технических услуг. Исходя из этого, мы можем принять гипотезу, потому что клиенты со службой технической поддержки меньше уходят. IMG 4.13 и IMG 4.14 ниже резюмируют вышеизложенное.

5.0 Моделирование

Несбалансированность набора данных
Как указывалось ранее, набор данных представляет собой несбалансированный набор, то есть имеет место неравномерное распределение значений в целевом классе. В этом случае целевой класс (который мы пытаемся предсказать) — "Отток", и существует больше клиентов, которые не ушли (около 73%), как показано на IMG 5.1 ниже.

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

Для этого проекта к набору данных были применены 3 наиболее распространенных метода балансировки по отдельности, чтобы упростить оценку того, какой метод (методы) лучше всего подходит для ситуации. Рассматриваемые методы балансировки — передискретизация, недостаточная выборка и SMOTE.

Рабочий процесс моделирования
Учитывая вышеизложенное, IMG 5.2 ниже представляет хороший процесс моделирования, который я адаптировал для этого проекта;

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

5.1 Кодирование функций

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

  • Кодировка меток использовалась для всех категорий столбцов с Да/Нет в качестве возможных категорий.
  • Горячее кодирование было применено к полу (из-за отсутствия явного порядкового номера) и другим категориальным столбцам с более чем двумя категориями. В каждом случае первые столбцы были удалены, чтобы уменьшить уровень размерности.
  • Числовые столбцы (срок пребывания, ежемесячные платежи и общие платежи) масштабировались с помощью MinMaxScaler. Масштабирование было выполнено после разделения данных на обучение и оценку.

5.2 Важность функции

После кодирования переменных я просмотрел (возможно) важные функции, используя SelectKBest и ExtraTreesClassifier. Следующее было названо наиболее важными функциями:

  • 2-летние контракты
  • Оптоволоконный интернет-сервис
  • Ежемесячные платежи
  • Способ оплаты электронным чеком
  • срок пребывания в должности
  • Общие расходы

5.3 Модели

Следующие модели были построены для каждого из трех методов балансировки наборов данных:

  • Логистическая регрессия
  • Древо решений
  • Случайный лес
  • XGBoost
  • CatBoost
  • СветGBM

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

  1. Передискретизация

2. Недостаточная выборка

3. Балансировка SMOTE

Я также построил несколько автономных древовидных моделей, просто чтобы посмотреть, как они будут работать с несбалансированным DataFrame… получилось не очень хорошо.

Сравнение моделей
Итак, какие модели показали лучшие результаты и какие из них были выбраны? Что ж, вот сводка их выступлений, отсортированная по баллу F2 (fbeta), взвешенному баллу F1 и точности.

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

5.4 Оптимизация модели

Как видно из сводной таблицы (IMG 5.6) выше, модели случайного леса показали лучшие результаты в своих соответствующих категориях, а также вошли в 2 лучших по производительности. Чтобы предотвратить «однонаправленное моделирование», модели, которые я выбрал для оптимизации, — это модель случайного леса из данных передискретизации (лучший исполнитель) и модель XGBoost из данных SMOTE (следующий другой исполнитель) в качестве резервной копии.

Чтобы узнать больше о различных методах и о том, как они работают, я сначала изучил K-Fold Cross-Validation, затем RandomizedSearchCV и закончил GridSearchCV (только для Random Forest).

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

K-кратная перекрестная проверка

Я провел K-Fold Cross-Validation (CV) с 10, 15 и 20 кратностями базовой формы модели и получил средний балл около 0,89.

Рандомизированный поискрезюме

Затем я определил сетку параметров и применил RandomizedSearchCV с 10-кратной перекрестной проверкой, как показано на IMG 5.7 ниже.

Затем я получил лучший результат (около 0,897) и лучшие параметры, которые можно использовать при построении оптимизированной версии модели. IMG 5.8 представляет собой снимок отчета о классификации и матрицы путаницы, показывающий, что производительность модели повысилась.

GridSearchCV

Я повторил процесс для GridSearchCV, но на этот раз сетка параметров была основана на лучших параметрах из RandomizedSearchCV. IMG 5.9 — снимок отчета о классификации и матрицы путаницы. Производительность модели из GSCV была несколько ниже, чем у модели из RSCV, это лучше видно в матрицах путаницы.

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

5.4.2 XGBoost
Здесь был применен процесс, используемый для оптимизации модели Random Forest, за исключением GSCV, который требовал значительных вычислительных ресурсов и не дал лучших результатов с первой попытки. Результаты обобщены на IMG 5.10 ниже:

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

6.0 Окончательный прогноз

Теперь к Grande Finale, применяя «усовершенствованные» модели к оставшемуся образцу и выбирая лучших из лучших.

Учитывая, что я не видел большого количества материалов, которые уравновешивали бы их данные И имели отклонение, было довольно сложно и запутанно решить, следует ли уравновешивать несоответствующую выборку перед окончательными прогнозами.
В конце дня я решил сделать копию своей записной книжки и сбалансировать задержку в одной записной книжке, прежде чем делать прогноз; обратное справедливо для другого ноутбука, где я предсказал несбалансированный набор данных. В конце концов, модели показали лучшие результаты в ноутбуке со сбалансированным образцом удержания, поэтому я представлю их здесь. Оба блокнота находятся в репозитории проекта (ссылка в последнем разделе).

6.1 Модель случайного леса

На IMG 6.1 выше мы видим, что производительность модели, основанная на ее способности точно прогнозировать отток, низкая. На самом деле, ужасно, по сравнению с его выступлениями на тренировках.
(Начинает казаться, что нам, возможно, придется вернуться к чертежной доске. Или нет? Что ж, давайте посмотрим, как работает XGBoost…)

6.2 Модель XGBoost

Ну, ну, похоже, спасение уже здесь. Несмотря на значительное снижение оценок, примерно с 0,84 в оптимизации до примерно 0,79 здесь, эта модель отлично справляется (лучше, чем модель случайного леса)в точно предсказывая взбитый класс. Таким образом, эта модель рекомендуется для дальнейшей оптимизации (если возможно) и развертывания.

7.0 Ключевые выводы и выводы

  1. Чтобы эффективно сократить отток клиентов, Vodafone может сосредоточиться на управлении наиболее важными функциями при прогнозировании того, будет ли отток клиентов. К ним относятся:
     – срок пребывания: клиенты, остававшиеся в компании более 29 месяцев, с меньшей вероятностью уходили;
    – долгосрочные контракты (на 1 и 2 года): клиенты с такими контрактами уходили с меньшей вероятностью, чем помесячный контракт
     — общие платежи и ежемесячные платежи: они имели положительную связь с оттоком клиентов, т. е. клиенты, скорее всего, уходили по мере увеличения расходов.
    Собрав все вместе, Vodafone может сосредоточиться на предоставлении услуг. пакеты, которые будут стимулировать клиентов оставаться дольше. Поступая таким образом, они, вероятно, увеличат долгосрочные «затраты на переключение» для клиентов, поскольку Vodafone будет предоставлять им более комплексные и специализированные услуги.
  2. Vodafone предстоит много работы по улучшению сервиса. Первые шаги могут включать в себя выяснение причин низкого уровня использования технической поддержки и высокого оттока среди пользователей услуг оптоволоконного интернета. Затем может потребоваться целостный подход к их решению.
  3. Перед моделированием и прогнозированием важно получить некоторый баланс в наборе данных; в этом случае лучшим методом балансировки для этого набора данных был SMOTE, хотя избыточная выборка дала лучшую обучающую модель.
  4. Лучшей моделью для невидимых данных была модель XGBoost из данных SMOTE. Эта модель может быть оптимизирована еще больше и развернута.

8.0 Заключительные примечания

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

8.1 Ссылка на репозиторий проекта



8.2 Особые упоминания

Выражаю признательность Айви Барли, Джошуа Кобине Обенгу и Дереку Дегбедзуи. Большое спасибо; Ваше время, советы и рекомендации ценятся.