Конвейер прогнозирования оттока телекоммуникационных компаний

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

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

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

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

Введение

«При подготовке к битве я всегда обнаруживал, что планы бесполезны, но планирование необходимо». - Дуайт Д. Эйзенхауэр

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

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

«Хаос был законом природы; Порядок был мечтой человека». — Генри Адамс

В идеальном сценарии данные должны быть хорошо организованы и готовы к анализу. Однако в реальных наборах данных часто встречаются различные аномалии, такие как пропущенные значения, дубликаты, орфографические ошибки и несогласованная маркировка. Наш данный набор данных не является исключением. Необходимо решить эти вопросы, чтобы облегчить обработку и анализ данных. Определив и поняв причины этих проблем, мы можем эффективно их исправить. В нашем примере было замечено несколько проблем. Во-первых, столбец «Дата окончания» содержал либо дату окончания контракта, либо слово «Нет». Это создает проблему при определении того, ушел ли клиент. В то время как человек может интуитивно интерпретировать дату как признак оттока, у компьютера нет такой возможности. Чтобы сохранить ценную информацию, мы создадим новый целевой столбец под названием «Отток» со значениями «Да» для клиентов с датой окончания и «Нет» для постоянных клиентов. Столбец «EndDate» будет изменен, установив значения «No» на самую последнюю дату в наборе данных. Еще одна выявленная проблема заключалась в том, что у 11 клиентов не было записи «TotalCharges». В ходе расследования было обнаружено, что эти клиенты недавно зарегистрировались, и недостающие значения могут быть заполнены прогнозируемой ежемесячной оплатой. Хотя удаление этих строк возможно, обычно предпочтительнее сохранить как можно больше исходных данных. После того, как данные очищены, мы можем приступить к решению вопросов исследования, поставленных во введении.

Исследовательский анализ данных

«Одних данных недостаточно, это рассказывание историй о данных, которые оживляют их и делают их действенными». — Джон Маэда

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

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

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

Форма контракта

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

срок пребывания в должности

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

Статус партнера

Основываясь на анализе, пары клиентов демонстрируют более низкий уровень оттока (19%) по сравнению с отдельными клиентами (33%), несмотря на схожее представление в данных. Тем не менее, исследования показывают, что статус отношений не может быть сильным фактором, определяющим отток. Поэтому, несмотря на то, что это открытие интригует, важно учитывать другие факторы и результаты исследований для эффективных стратегий удержания клиентов.

иждивенцы

Анализ оттока клиентов выявил интересные сведения о демографических факторах. Было обнаружено, что пары имеют более низкий уровень оттока (19%) по сравнению с отдельными лицами (33%), в то время как клиенты без иждивенцев демонстрируют более высокий уровень оттока (33%) по сравнению с клиентами с иждивенцами (16%). Однако важно отметить, что сами по себе демографические факторы могут быть не самыми надежными детерминантами оттока, что требует учета других факторов для точного прогнозирования оттока и эффективных стратегий удержания.

Разработка функций

«Разработка функций — это искусство преобразования необработанных данных в полезные функции, которые эффективно представляют основную проблему». — Мартин Гудсон

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

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

# Encoding with get_dummies 
features_dummy = pd.get_dummies(features_processed, drop_first=True)

# split the data to scale features
X = features_dummy.drop('churn', axis=1)

y = features_dummy['churn']

X_train,X_test,y_train,y_test = train_test_split(X,y,
                                                     test_size=0.4,
                                                     random_state=639)


# sacling with Standard scaler. 
scaler = StandardScaler()

scaler.fit(X_train)

X_train_scaled = scaler.transform(X_train)
X_test_scaled = scaler.transform(X_test)

y_train_scaled = y_train
y_test_scaled = y_test

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

Оценка модели:

«Подобно тому, как опытный спортсмен нуждается в тщательной подготовке и оценке, модель требует постоянной доработки, чтобы полностью раскрыть свой потенциал». - Неизвестный

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

models = []
models.append(('LR', LogisticRegression(solver='liblinear')))
models.append(('LDA', LinearDiscriminantAnalysis()))
models.append(('KNN', KNeighborsClassifier()))
models.append(('DTC', DecisionTreeClassifier()))
models.append(('RF', RandomForestClassifier()))
models.append(('NB', GaussianNB()))
models.append(('SVM', SVC(gamma='auto')))
models.append(('GB', GradientBoostingClassifier()))


# evaluate each model in turn
results = []
names = []
for name, model in models:
    # Test options and evaluation metric
    kfold = StratifiedKFold(n_splits=10)
    cv_results = cross_val_score(model, X_train_scaled, y_train_scaled, cv=kfold, scoring='roc_auc')
    results.append(cv_results)
    names.append(name)
    print('%s: %f (%f)' % (name, cv_results.mean(), cv_results.std()))

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

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

Чтобы оптимизировать качество прогнозирования модели и предотвратить переоснащение, очень важно оценивать выходные данные модели во время обучения с использованием объективных показателей оценки. В отличие от человеческого суждения, основанного на субъективных представлениях о правильности, модели требуют метрик, обеспечивающих более объективную оценку. В то время как традиционные метрики, такие как точность и прецизионность, закладывают основу, более продвинутые метрики, такие как ROC (рабочая характеристика приемника) и оценка F1, обеспечивают более глубокое понимание прогностической способности модели.

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

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

Тестирование модели:

«Тестирование — это процесс открытия, а не процесс подтверждения». — Джеймс Маркус Бах

После оценки и оптимизации моделей следующим важным шагом является тестирование моделей для оценки их производительности на невидимых данных. Этот этап тестирования служит для проверки и дает представление о применимости модели в реальных условиях. В контексте конкретного проекта была протестирована модель Gradient Boosting Model, которая продемонстрировала самый высокий средний показатель AUC-ROC, равный примерно 0,858, и достигла значения AUC-ROC, равного примерно 0,8409. Это указывает на то, что модель хорошо работает с невидимыми данными и не является избыточной.

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

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

Git Repo для проекта