Набор данных об оттоке клиентов
Данный набор (По данным Muhammad Shahid Azeem) представляет собой данные об оттоке клиентов в телекоммуникационной отрасли, включая такие, как стаж клиента, сумма выставленного счета, тип контракта, использование услуг и взаимодействие со службой поддержки. Работа представляет собой разведочный анализ данных оценки зависимости оттока клиентов в функции параметров их взаимодействия с компанией.
Исходные данные: ‘customer_churn_dataset.csv’
Данный набор содержит 20000 синтетических записей о клиентах с 9 признаками оттока клиентов (+ идентификационный номер клиентов и фактор оттока клиентов — бинарная целевая переменная).
Расчеты выполнены на Python с использованием библиотек: numpy, pandas.
Графическая обработка данных выполнялась средствами Excel.
Фрагмент файла (20000 строк, 11 столбцов):
Описание столбцов:
- customer_id — идентификатор клиента
- tenure — срок полномочий – количество месяцев, в течение которых является клиентом компании
- monthly_charges — сумма счета за месяц
- total_charges — суммарная сумма оплаты за время использования
- contract — тип договора (на месяц, на год, на два года)
- payment_method — способ оплаты, используемый клиентом
- internet_service — тип подключения интернет услуги
- tech_support — наличие технической поддержки
- online_security — доступность онлайн – сервисов безопасности
- support_calls — количество звонков в службу поддержки клиентов
- churn — отказ от услуги (churn of clients – отток клиентов)
Фрагмент (части) данных представлен на графике:

Анализ данных
Выполнен предварительный корреляционный анализ параметров взаимодействия клиента с фирмой и наличием оттока клиентов по всему полю данных с целью определения наиболее значимых свойств с основным показателем – оттоком клиентов. Данный анализ показал его недостаточность для оценки тесноты связи параметров по обобщенным критериям, которыми являются факторы взаимодействия клиента с компанией.
Данный анализ показал, что требуется более детальный анализ с кагорным разбиением, возможно, с использованием машинного моделирования с применением классификатора «случайного леса».
В данной работе применено разбиение «данных взаимодействия» на «квантили»: определение максимального значения в столбце, деление на 4 квантили, для каждой квантили определено суммарное значение «оттоков».
Примечание: понятие «квантили», в данной работе, включает также разбиение по идентичности признака – не цифрового объекта (например, название поставщика услуг).
Краткое описание кода
Основной цикл – по колонкам, исключая колонку индексов клиента и колонку основного критерия оценки – оттока. Кроме того, имеет место разделения кода на обработку не цифровых данных и цифровых данных (метка – устанавливается блоком анализа).
Для компоновки получаемых предварительных данных и результатов сборки по параметрам сформированы два списка, заполняемые по ходу выполнения кода.
Результат расчета (представлен списком):
[Running] python -u «c:\python\custome_churn_analysis_v04.py»
[‘tenure’, 0, 18, ‘Yes:’, 2113, ‘No:’, 2961, 18, 36, ‘Yes:’, 1686, ‘No:’, 3554, 36, 54, ‘Yes:’, 1665, ‘No:’, 3619, 54, 72, ‘Yes:’, 1652, ‘No:’, 3643, ‘monthly_charges’, 0, 30, ‘Yes:’, 480, ‘No:’, 1506, 30, 60, ‘Yes:’, 1357, ‘No:’, 4722, 60, 90, ‘Yes:’, 1928, ‘No:’, 3965, 90, 120, ‘Yes:’, 3078, ‘No:’, 2968, ‘total_charges’, 0, 2157, ‘Yes:’, 3306, ‘No:’, 6941, 2157, 4314, ‘Yes:’, 1904, ‘No:’, 4125, 4314, 6472, ‘Yes:’, 1225, ‘No:’, 1645, 6472, 8629, ‘Yes:’, 408, ‘No:’, 445, ‘contract’, ‘Month-to-month’, ‘Yes:’, 5157, ‘No:’, 6785, ‘One year’, ‘Yes:’, 1044, ‘No:’, 3946, ‘Two year’, ‘Yes:’, 642, ‘No:’, 2426, ‘payment_method’, ‘Credit’, ‘Yes:’, 1718, ‘No:’, 3308, ‘Debit’, ‘Yes:’, 1714, ‘No:’, 3311, ‘Cash’, ‘Yes:’, 1701, ‘No:’, 3294, ‘UPI’, ‘Yes:’, 1710, ‘No:’, 3244, ‘internet_service’, ‘DSL’, ‘Yes:’, 2683, ‘No:’, 5240, ‘Fiber’, ‘Yes:’, 3451, ‘No:’, 6613, nan, ‘Yes:’, 0, ‘No:’, 0, ‘tech_support’, ‘No’, ‘Yes:’, 5394, ‘No:’, 7637, ‘Yes’, ‘Yes:’, 1449, ‘No:’, 5520, ‘online_security’, ‘Yes’, ‘Yes:’, 2764, ‘No:’, 5228, ‘No’, ‘Yes:’, 4079, ‘No:’, 7929, ‘support_calls’, 0, 2, ‘Yes:’, 4563, ‘No:’, 11532, 2, 4, ‘Yes:’, 3438, ‘No:’, 5068, 4, 6, ‘Yes:’, 763, ‘No:’, 544, 6, 8, ‘Yes:’, 56, ‘No:’, 38]
[Done] exited with code=0 in 22.598 seconds
Представление данных для анализа (последующая обработка и графическое представление выполнялись средствами Excel):



По полученным данным:
- Длительность контракта (tenure) и метод оплаты (payment_method) практически не влияют на соотношение оттока клиентов.
- Значение месячной оплаты (monthly_charges), также, как и общая величина оплаты (total_charges) – наименьший отток в среднем диапазоне стоимости – можно предложить периодические акции, приближающие клиента к среднему ценовому диапазону, с последующим A/B – тестированием.
- Обращение в поддержку (support_calls) показывает, что чем интенсивнее клиент взаимодействует с поддержкой, тем меньше отток.
- Значимость самой технической поддержки (tech_support), примерно, 79% — ее обеспечение стабильности (не оттока) клиентов.
- По типу договора (contract) наиболее стабильным, с точки зрения оттока клиентов является более длительный контракт (в анализе — до двух лет).
- доступность онлайн – сервисов безопасности (online_security) является явно недостаточным (вероятно потребуется более детальный анализ для ее совершенствования или, возможно, ее рекламы).
