Отток — Анализ выживания

искусственный интеллект анализ данных
Отток — Анализ выживания

Отток — Анализ выживания

отток клиентов

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

Для прогнозирования оттока клиентов существует множество моделей машинного обучения, которые могут предсказать, будет ли отток клиентов или нет. Прогнозирование оттока имеет несколько преимуществ:

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

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

анализ прожиточного минимума

Модель пропорциональных опасностей COX

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

Наиболее интересным аспектом такого моделирования выживания является то, что оно может检查生存时间和预测变量之间的关系.

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

Пояснение параметров модели:

  • Функция риска λ(t): дает мгновенный риск смерти в момент времени t;
  • ковариата Z: собственный вектор;
  • Функция исходного риска λo(t): описывает изменение риска события с течением времени, то есть потенциальный риск, для которого все ковариаты равны 0;

Кроме того, в отличие от кривой Каплана-Мейера, обычно используемой в одномерном анализе, модель ЦОГ является多因素生存分析метод, а модели COX могут содержать категориальные переменные (например, пол), а также числовые переменные (например, возраст).

А кривые Каплана-Мейера могут содержать только категориальные переменные. А регрессия ЦОГ расширяет метод анализа выживаемости, позволяя одновременно оценивать влияние нескольких факторов риска на выживаемость, и имеет более широкое применение (прямой хороший парень ?).

Применение модели

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

  1. читать данные
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.read_csv('Telecom_customer churn.csv')
df = df.dropna()
df.set_index('Customer_ID', inplace=True)
  1. Удалить функции с более чем 2 категориями
df_str = df.loc[ : , df.dtypes == object]

for i in df_str.columns:
   if len(np.unique(df_str[i].values)) >2:
       del df[i]
  1. Особенности
df_str = df.loc[:, df.dtypes == object]
for i in df_str.columns:
   one_hot = pd.get_dummies(df[i])
   one_hot.columns = [ i +'_'+j for j in one_hot.columns]
   df = df.drop(i,axis = 1)
   df = df.join(one_hot)
   
survival_time = df['months'].values
del df['months']
churn = df['churn'].values
del df['churn']
  1. Удалить функции с высокой корреляцией
corr_matrix = df.corr().abs()
upper = corr_matrix.where(np.triu(np.ones(corr_matrix.shape), k=1).astype(np.bool))
to_drop = [column for column in upper.columns if any(upper[column] > 0.98)]
df.drop(to_drop, axis=1, inplace=True)

df = df[list(df.columns[:69])]
df['months'] = survival_time
df['churn'] = churn
df = df[df['churn'] == 1]
  1. Выберите переменные и постройте модель Кокса
df_sampled = df.sample(n=1000)
from lifelines import CoxPHFitter

cph = CoxPHFitter(penalizer=0.01) 
cph.fit(df_sampled, duration_col='months', event_col='churn')
df_stats = cph.summary

features_valuable = list(df_stats[df_stats['exp(coef)'].values > 1.01].index) + list(df_stats[df_stats['exp(coef)'].values < 0.98].index)
df = df[features_valuable+['churn','months']]

Одно из основных предположений модели CPH заключается в том, что мультиколлинеарность признаков отсутствует, и перед моделированием необходимо разобраться с мультиколлинеарностью между признаками:

  • Мультиколлинеарность может быть разрешена до подбора модели Кокса;
  • Штрафы могут применяться к величине коэффициентов во время регрессии, используя штрафы для повышения стабильности оценок и контроля высоких корреляций между ковариатами.
  1. Интерпретация результатов модели
cph.summary

cph.plot()

Отношение рисков (HR) равно exp(coef), где coef — это вес признака.

Это не работает, если exp(coef) = 1 для признака;如果 exp(coef) > 1,则降低风险,提高生存率.

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

позвони сюдаplot_partial_effects_on_outcome( )方法И передайте параметры — интересующую функцию и отображаемое значение.

С моделями признаков = 9 коэффициент выживаемости составляет 80% в течение 42 месяцев, в то время как для других значений коэффициент выживаемости ниже.

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

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

Вы также можете сравнить влияние стратегий на кривые выживания, применяя разные стратегии к клиенту:

Реализация стратегии 1 (оранжевая линия) здесь работает лучше, чем стратегия 2 (зеленая линия) и имеет более высокую выживаемость. Таким образом, можно проанализировать каждого клиента и разработать упреждающие стратегии для обеспечения наивысшей статистической выживаемости.

резюме

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