Если несколько моих соседей уйдут от поставщика услуг связи, должен ли я уйти от него? Нет, не совсем. Я не это имел в виду.

При выборе поставщика телекоммуникационных услуг у клиентов обычно есть много вариантов. Они могут выбрать любого поставщика услуг и могут отказаться от текущего поставщика. Когда клиент решает перейти от текущего поставщика к новому поставщику, это приводит к потере бизнеса и дохода для текущего поставщика. Процент клиентов, уходящих и отключающих услугу, известен как «отток». Стабильная клиентская база – залог успеха любого бизнеса. Предприятия стараются, чтобы клиенты были довольны, чтобы удержать их как можно дольше. Однако в реальном мире отток клиентов в телекоммуникационной отрасли может достигать 25% в год. Кроме того, затраты на привлечение нового клиента в 10 раз превышают затраты на удержание существующего клиента. Это представляет собой серьезную проблему для владельцев бизнеса.

Примечание.

Все данные, использованные для этого анализа, доступны по адресу: https://github.com/microbhai/CustomerChurnAnalysis/blob/master/tcommunication_customer_churn.csv.

Весь код доступен по адресу: https://github.com/microbhai/CustomerChurnAnalysis/tree/master/ClassificationAnalysisKNN

Роль аналитики данных

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

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

Что мы будем делать?

В целом проблему можно резюмировать:

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

2. Окончательный результат прогнозирования для любого конкретного клиента должен быть «Да» или «Нет» (двоичный вывод).

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

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

Основываясь на кратком изложении проблемы, нам нужна прогностическая модель, которая может выполнять бинарную классификацию или предсказывать тип выходной переменной Да/Нет или 1/0. В одной из своих предыдущих статей я использовал логистическую регрессию в качестве прогностической модели для анализа оттока клиентов (здесь). В этой статье мы будем использовать другой метод, KNN или k-ближайших соседей. Алгоритм классификации KNN часто используется для классификации данных, а также для регрессии на непрерывных числовых данных. Он используется не только для бинарной классификации, но и для многоуровневых классификаций. Это непараметрический метод машинного обучения, подразумевающий, что он не делает никаких предположений о данных. Он также не делает каких-либо обобщений, а просто проверяет соседние точки данных, чтобы определить классификацию неизвестных или некатегоризированных точек данных. В этой задаче мы будем рассматривать аспект классификации KNN, а не часть регрессии.

Метод машинного обучения KNN работает на расстоянии между точками данных и основан на основной предпосылке, что аналогичные точки данных находятся близко друг к другу. Он широко используется в системах рекомендаций клиентов, распознавании изображений и моделях принятия решений. Если ваши соседи относятся к определенной категории, вы, скорее всего, попадете в ту же категорию, основываясь на том, что вы находитесь рядом с ними. И наоборот, те, кто не рядом, а дальше, скорее всего, подпадают под другую классификацию, чем ваша. Могут быть исключения (точки, принадлежащие к другой категории, находятся рядом с точками из другой категории) и, следовательно, могут быть ошибки в прогнозах, основанных на расстоянии, особенно вокруг границ решений. Мы можем реализовать модель KNN и проверить, насколько точно она может предсказать классификацию точек. Думайте об этих точках данных как о точках в n-мерном пространстве и алгоритме KNN, предсказывающем их категории на основе расстояния между некатегоризированными точками данных и их k ближайшими соседями, где k — параметр.

Как показано на изображении выше, точки серого цвета прогнозируются как красные и синие. Алгоритм прогнозирования создает границу решения или контур (пространство большой размерности), и в зависимости от того, на какую сторону границы или контура попадает точка, делается прогноз. Граница решения показывает, какие точки будут предсказаны как красные или синие. И эта граница решения меняется при изменении переменной k.

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

Подготовка данных

Подготовка данных начинается с понимания имеющихся данных для анализа. Данные об оттоке клиентов содержат 50 полей. Одна из важных задач — определить, какие поля можно использовать для регрессионного анализа. Существуют категориальные поля данных, такие как военное положение, пол и т. д., и непрерывные числовые поля данных, такие как срок пребывания в должности, возраст и т. д. Некоторые из этих полей могут быть не важны для анализа, например идентификатор клиента, взаимодействие и UID (которые связаны с клиентом). сервисное взаимодействие). Некоторые другие поля, которые не важны для анализа, — это широта и долгота клиента, порядок обращения (используется как порядковый номер). Мы также проверим данные на наличие нулевых значений, и если они будут найдены, их нужно будет обработать соответствующим образом.

Фиктивные переменные и нормализация

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

Для непрерывных числовых данных масштаб данных для каждого столбца различен. Например, столбец возраста имеет значения от 10 до 89, а столбец зарплаты содержит цифры, исчисляемые десятками или сотнями тысяч. Существует большая разница в масштабах этих переменных. Прежде чем мы сможем использовать эти данные для анализа, их необходимо нормализовать. Стандартизация точек данных еще более важна для алгоритма KNN, поскольку обработка основана на расстоянии между точками данных. Точность предсказания повышается, когда эти точки наносятся с использованием размеров с одинаковым масштабом, а не с размерами, которые сильно различаются (порядки величины).

Создание модели

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

Категориальные переменные:

«Изменение», «Местоположение», «Семейное положение», «Пол», «Техник», «Контракт», «Порт_модем», «Планшет», «Интернет-сервис», «Телефон», «Несколько», «Онлайн-безопасность», «Онлайн-резервное копирование». ', 'DeviceProtection', 'Техническая поддержка', 'StreamingTV', 'StreamingMovies', 'PaperlessBilling', 'PaymentMethod'

Непрерывные числовые переменные:

«Население», «Дети», «Возраст», «Доход», «Отключение_сек_в неделю», «Электронная почта», «Контакты», «Ежегодный_отказ_оборудования», «Срок владения», «Ежемесячная оплата», «Пропускная способность_ГБ_Год»

Шаги для анализа этих данных с использованием алгоритма классификации KNN:

1. Создайте фиктивные переменные для категориальных переменных

2. Стандартизируйте непрерывные числовые данные с помощью StandardScalar.

3. Создайте 2 набора данных:

а. Со всеми предикторными переменными или независимыми переменными (X)

б. С зависимой переменной Churn (y)

4. Разделить набор данных на обучающий и тестовый набор (70% данных для обучения модели и 30% для ее тестирования).

5. Запустите модель KNN без каких-либо параметров (по умолчанию) и проверьте точность и статистику AUC.

6. Запустите логистическую регрессию для сравнения модели с моделью KNN.

7. Запустите настройку параметров и проверьте улучшение производительности модели.

Анализ модели KNN

Эффективность модели классификации можно оценить по точности и AUC (площадь под кривой). Точность результата бинарного предсказания можно вычислить по матрице путаницы. Матрица путаницы сообщает нам, сколько нулей было предсказано как 0, сколько 0 было предсказано как 1, сколько 1 было предсказано как 0 и сколько 1 было предсказано как 1. Оценка точности может быть рассчитана как:

Оценка точности = (количество истинно положительных результатов + # ложноотрицательных результатов) / (количество истинно положительных результатов + # ложноотрицательных результатов + # истинно отрицательных результатов + # ложноположительных результатов)

Детали исходных параметров модели:

{'algorithm': 'auto', 'leaf_size': 30, 'metric': 'minkowski', 'metric_params': None, 'n_jobs': -1, 'n_neighbors': 5, 'p': 2, 'weights': 'uniform'}

Матрица путаницы:

[[2018  183]
 [ 341  458]]

ППК: 0,8253

Как видите, точность прогноза оттока клиентов составляет примерно 82 %. Мы уже повысили точность, используя MinMaxScalar для стандартизации данных. Теперь, на следующем этапе, мы настроим различные другие параметры, чтобы получить модель, которая лучше прогнозирует отток клиентов.

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

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

1. Одним из параметров модели KNN является p. Значение p определяет, какой тип расстояния следует использовать между точками для поиска ближайших соседей. Расстояние может быть евклидовым, манхэттенским или минковским. При изменении значения параметра со значения по умолчанию 2 на p=1 точность и показатель AUC стали лучше. Новый показатель точности оказался равным 0,8266 с AUC 0,865.

2. Параметр «n_neighbors» определяет, сколько ближайших соседей следует использовать для рассмотрения перед прогнозированием неклассифицированных точек данных. Значение этого параметра по умолчанию равно 5.

3. Параметр «веса» определяет, должны ли все точки взвешиваться одинаково или более близкие соседи имеют больший вес.

4. Параметр «алгоритм» определяет алгоритм вычисления ближайших соседей. Значения могут быть «автоматически», когда автоматически определяется алгоритм или конкретная модель, такая как BallTree, KDTree, поиск методом перебора и т. д.

5. Параметр leaf_size используется для алгоритмов ball_tree или KDtree.

Невозможно выполнить сравнение моделей вручную для 100 или 1000 комбинаций значений этих параметров. Следовательно, мы будем использовать GridSearchCV из sklearn. model_selection для запуска всех различных моделей и определения наилучшей производительности модели.

Основываясь на результатах GridSearchCV, следующая модель показалась лучшей для прогнозного анализа оттока клиентов с использованием KNN.

{'algorithm': 'auto', 'leaf_size': 1, 'metric': 'minkowski', 'metric_params': None, 'n_jobs': -1, 'n_neighbors': 18, 'p': 1, 'weights': 'distance'}

Матрица путаницы:

[[2110   91]
 [ 340  459]]

Оценка точности: 0,8563

ППК: 0,918

Сравнение моделей KNN с моделью логистической регрессии

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

Мы видим, что эти различные модели в целом имеют высокую степень точности. Логистическая регрессия, по-видимому, намного лучше предсказывает 1 как 1, то есть предсказывает клиентов, которые уйдут. Этот процент близок к 80% для логистической регрессии, в то время как для моделей KNN этот показатель составляет ‹60%. Поскольку эта метрика имеет решающее значение для определения того, какие клиенты могут прекратить обслуживание, модель логистической регрессии, по-видимому, обеспечивает лучшую модель прогнозирования этих клиентов по сравнению с моделью KNN.

Обзор модели и интерпретация

Мы создали довольно точную прогностическую модель с точностью около 85% в предсказании поведения клиентов с помощью KNN. Модель может определить, планирует ли клиент отключиться, с точностью примерно 56%. Оценка AUC окончательной модели составляет 0,916, что очень близко к идеальной 1. С помощью этой модели компания теперь может получить четкое представление о том, какие клиенты могут прекратить обслуживание.

Наша окончательная матрица путаницы представлена ​​ниже. Это означает, что 2110 клиентов, которые, по прогнозам, останутся с компанией, на самом деле остались. Прогнозировалось, что в общей сложности 91 клиент продолжит работу с компанией, но они прекратили обслуживание. Кроме того, 459 клиентов, которым прогнозировалось прекращение предоставления услуг, фактически прекратили их использование. И 340 клиентов, которые, как предполагалось, продолжат работу в компании, фактически уволились.

Матрица путаницы:

[[2110   91]
 [ 340  459]

Ниже представлена ​​кривая ROC для окончательной модели KNN и сравнение с кривой ROC логистической регрессии. Обратите внимание, что кривая логистической регрессии имеет больше AUC (площадь под кривой), чем KNN, следовательно, немного более точная.

AUC, равный 0,5, является хорошим случайным предположением. AUC, равный 1, показывает, что прогнозы можно делать со 100% точностью. Кроме того, значение AUC, равное 0, будет означать, что все прогнозы модели неверны (все 0 прогнозируются как 1 и наоборот).

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

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