Логистическая регрессия, KNN, Дерево решений, Случайный лес, SVC, Линейный SVC, GaussianNB, BernouliNB

Коды Python доступны: https://github.com/JNYH/Project-McNulty

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

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

Этот проект основан на образцах данных IBM от Kaggle.

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

В этот набор данных входят следующие функции:
· демографические данные: пол, пожилой гражданин, партнер, иждивенцы
· услуги по подписке: PhoneService, MultipleLine, InternetService, OnlineSecurity, OnlineBackup, DeviceProtection, TechSupport, StreamingTV, StreamingMovies
· Информация об учетной записи клиента: CustomerID, Contract, PaperlessBilling, PaymentMethod, MonthlyCharges, TotalCharges, Tenure

Цель - отток, который имеет двоичные классы 1 и 0.

Как мы выбираем функции?

Характеристики выбираются в основном на основе коэффициента Лассо и с использованием Случайного леса. Также учитывались p-значения и коэффициенты из Statsmodels.

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

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

Функциональная инженерия

Эти 3 функции «Срок владения», «Ежемесячные платежи» и «Общие сборы» представляют собой непрерывные данные, которые можно разделить на категории. Когда я посмотрел на график пары, мне показалось возможным разделить отток (оранжевый) и не отток (синий) клиентов.

Итак, я тщательно выбрал эти границы разделения (ниже), чтобы попытаться разделить случаи оттока и случаи отсутствия оттока.

Выбор модели

Я протестировал 8 классификационных моделей, обучил их, оптимизировал, и вот результаты. Логистическая регрессия обычно хорошо работает с двоичной классификацией и работает лучше остальных. F1-Score - это баланс между точностью и скоростью отзыва.

AUC обозначает площадь под кривой, описание которой приводится ниже. Кривая ROC (Рабочая характеристика приемника) представляет собой взаимосвязь между показателем истинных положительных и ложноположительных результатов. Логистическая регрессия, обозначенная красной линией, имеет площадь 0,82 под этой кривой. Это означает, что модель работает лучше, чем случайные предположения диагональной линии 0,5.

По затраченному времени логистическая регрессия может быть не самой быстрой, но определенно не самой медленной. SVC в 10 раз медленнее, чем классификатор случайного леса, который в 10 раз медленнее, чем логистическая регрессия.

Другой показатель производительности - Log-Loss-Score, где мы ищем модель с наименьшей функцией потерь. И снова логистическая регрессия - лучшая, и, следовательно, последняя выбранная модель.

Настройка гиперпараметров

Затем я настроил порог логистической регрессии, чтобы максимизировать F1-Score. Настроив этот гиперпараметр, я достиг оптимизированной скорости отзыва 76%. Отзыв определяется как правильно спрогнозированное количество оттянутых клиентов. Однако компромисс заключается в том, что только 58% прогнозов оттока (показатель точности) верны. Это связано с ограничениями в текущей модели и наборе данных.

Оценка на тестовых данных

Наконец, я оценил модель логистической регрессии на тестовых данных. Функции отсортированы в порядке убывания важности из списка 47 функций. В зависимости от количества функций, используемых в модели, оценки производительности различаются. Обратите внимание, что в F1-Score есть убывающее предельное улучшение.

Заключение

Я бы предложил реализовать модель логистической регрессии с этими 18 основными функциями. И бизнес также может сосредоточиться на этом списке функций, чтобы понять, откажется клиент или нет.

Коды Python для вышеупомянутого анализа доступны на моем GitHub, не стесняйтесь обращаться к ним.

Https://github.com/JNYH/Project-McNulty

Видео-презентация: https://youtu.be/j7PiYjoKQ48

Спасибо за чтение!