Модель предсказания оттока клиентов

Узнай, кто уйдёт завтра, и успей удержать сегодня — модель предсказания оттока клиентов, которая превращает аналитику в прибыль.

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


Содержание

  1. Постановка задачи
  2. Сбор и подготовка данных
  3. Фиче-инжиниринг
  4. Выбор и обучение моделей
  5. Интерпретируемость (SHAP)
  6. Метрики оценки
  7. Развёртывание и мониторинг
  8. Практические кейсы
  9. Литература и ссылки

Постановка задачи

Цель – построить модель, которая для каждого активного клиента выдаёт вероятность оттока в ближайший прогнозный период (обычно 30‑90 дней). Зная эту вероятность, компания может:

  • Сегментировать клиентов по уровню риска;
  • Запускать таргетированные кампании удержания;
  • Оптимизировать работу отдела продаж и поддержки;
  • Сократить потери дохода за счёт профилактики.

Задача формулируется как бинарная классификация (отток / не отток) с вероятностным выводом.


Сбор и подготовка данных

2.1 Источники данных

Для построения надёжной модели обычно собирают информацию из разных систем:

  • CRM – история сделок, статусы аккаунтов;
  • Биллинг – платежи, сроки оплаты, задолженности;
  • Лог‑данные – посещения сайта, активность в мобильном приложении;
  • Служба поддержки – количество тикетов, темы обращений;
  • Маркетинг – рассылки, отклики, рекламные кампании;
  • Внешние источники – социальные сигналы, отзывы.

2.2 Пример структуры таблицы

client_id | signup_date | last_payment | avg_monthly_spend | visits_last_30d |
----------|--------------|--------------|-------------------|-----------------|1001 | 2022-03-15 | 2026-04-01 | 1200 | 45...

2.3 Объединение данных

Все таблицы объединяются по client_id в единую «широкую» таблицу. При этом важно:

  • Сохранять историчность – использовать только те данные, которые были известны до момента предсказания;
  • Обрабатывать пропуски (imputation) – среднее, медиана, «нет данных».

Фиче‑инжиниринг

Ключ к успеху модели – правильный набор признаков. Ниже перечислены группы признаков, которые часто оказываются «топ‑5» по важности (см. SHAP‑анализ).

3.1 Демографические и профили

  • Возраст аккаунта (дней с момента регистрации);
  • Сегмент клиента (B2B, B2C, рекламодатель и т.п.);
  • География.

3.2 Финансовые

  • Средний чек за последние N месяцев;
  • Тренд изменения расходов (рост/падение);
  • Задолженность, количество просроченных платежей.

3.3 Поведенческие

  • Частота посещений сайта/приложения (RFM‑модель: Recency, Frequency, Monetary);
  • Среднее время сессии, количество уникальных страниц;
  • Активность в рекламных кампаниях (CTR, CPC).

3.4 Служба поддержки

  • Количество тикетов за последние 30 дней;
  • Среднее время решения проблемы;
  • Тональность обращений (по NLP‑анализу).

3.5 Маркетинговые сигналы

  • Открытие/клик по последней рассылке;
  • Участие в акционных предложениях;
  • Отписка от рассылок.

Выбор и обучение моделей

Для задачи предсказания оттока часто используют несколько алгоритмов, сравнивая их эффективность.

4.1 Базовые модели

  • Логистическая регрессия – простая, интерпретируемая, хороша как baseline.
  • Дерево решений – визуализируемо, быстро обучается.

4.2 Градиентный бустинг

Самые популярные реализации:

  • XGBoost – часто выигрывает в соревнованиях, поддерживает раннюю остановку.
  • CatBoost – автоматически работает с категориальными признаками, устойчив к переобучению.
  • LightGBM – быстрый и лёгкий, хорош для больших наборов данных.

4.3 Энсамбли

Комбинация нескольких моделей (stacking, voting) позволяет улучшить метрику AUC на 1‑2 %.

4.4 Пример кода (Python + scikit‑learn + CatBoost)

import pandas as pd
from catboost import CatBoostClassifier, Pool
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_auc_score

df = pd.read_csv('churn_dataset.csv')
X = df.drop(columns=['churn'])
y = df['churn']

X_train, X_val, y_train, y_val = train_test_split(
 X, y, test_size=0.2, stratify=y, random_state=42
)

cat_features = ['segment', 'country']

train_pool = Pool(X_train, y_train, cat_features=cat_features)
val_pool = Pool(X_val, y_val, cat_features=cat_features)

model = CatBoostClassifier(
 iterations=800,
 learning_rate=0.05,
 depth=6,
 loss_function='Logloss',
 eval_metric='AUC',
 random_seed=42,
 early_stopping_rounds=50,
 verbose=100
)
model.fit(train_pool, eval_set=val_pool, plot=False)

val_pred = model.predict_proba(X_val)[:, 1]
print('AUC:', roc_auc_score(y_val, val_pred))

4.5 Кросс‑валидация и гиперпараметры

Для надёжного сравнения используем StratifiedKFold (5‑10 фолдов) и автоматический поиск гиперпараметров (Optuna, Hyperopt).


Интерпретируемость модели (SHAP)

После обучения важно понять, какие признаки «двигают» предсказания. Для градиентных бустингов широко применяется SHAP (SHapley Additive exPlanations).

  • SHAP‑значения показывают вклад каждого признака в конкретный прогноз;
  • Агрегированные графики (summary plot) позволяют увидеть глобальные драйверы оттока;
  • На практике компании используют SHAP, чтобы передать команде продаж конкретные причины риска (см. статья на Хабре «ML‑подход к заблаговременному предотвращению оттока рекламодателей»).

Пример визуализации SHAP

import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_val)

shap.summary_plot(shap_values, X_val, plot_type="bar")

Наиболее часто встречающиеся причины оттока (по данным SHAP):

  • Увеличение просроченных платежей;
  • Снижение частоты посещений (Recency > 30 дней);
  • Отсутствие взаимодействия с маркетинговыми кампаниями за последний месяц;
  • Рост стоимости услуг без соответствующего роста оборота.

Метрики оценки модели

Метрика Назначение Пороговое значение (пример)
ROC‑AUC Качество ранжирования клиентов по вероятности оттока > 0.85 – считается хорошим для большинства отраслей
PR‑AUC Учитывает дисбаланс классов (отток обычно < 10 %) > 0.30 – часто лучше ROC‑AUC при сильном дисбалансе
F1‑score Баланс precision и recall при выбранном пороге > 0.6
Lift@K Эффективность таргетинга в топ‑K клиентам Lift ≥ 3 при K = 5 %

Важно подбирать операционный порог (например, 0.6) в зависимости от стоимости удержания vs. стоимости потери клиента.


Развёртывание и мониторинг

7.1 Оффлайн‑версия модели

Для ежедневных расчётов часто используют «batch‑pipeline»: данные выгружаются из хранилища (Data Lake), проходят трансформацию в Spark/SQL, а затем модель применяет предсказания и сохраняет результаты в таблицу client_churn_score.

7.2 Онлайн‑инференс

Если требуется мгновенный отклик (например, при открытии клиентом веб‑страницы), модель упаковывается в контейнер Docker и обслуживается через REST‑API (FastAPI, Flask).

7.3 Мониторинг

  • Контроль дрейфа данных – сравнение распределения признаков в продакшене и в обучающем наборе;
  • Отслеживание изменения метрик (AUC, PR‑AUC) на контрольных выборках;
  • Логирование времени отклика API и количества запросов;
  • Автоматический re‑training каждые 30‑60 дней с использованием новых данных.

Практические кейсы

8.1 Рекламные площадки (пример из Хабра)

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

8.2 Банковская сфера

В НИУ ВШЭ разработали ансамбль XGBoost + CatBoost, который превзошёл базовые решения в конкурсе Kaggle. Точность предсказания оттока позволила банку увеличить коэффициент удержания на 12 % за счёт таргетированных предложений (повышенные лимиты, персональные программы).

8.3 Телекоммуникации

Модель, построенная на градиентном бустинге, использует более 150 признаков (в т.ч. метрики сети, количество переадресаций звонков). По результатам проекта отток сократился на 8 % в течение полугода, а доход от «спящих» клиентов вырос на 4 %.

8.4 Розничная торговля

Для сети гипермаркетов агрегировали данные о покупках, визитах в онлайн‑каталог и активности в loyalty‑программе. Прогноз оттока позволил сформировать «клуб лояльных» и отправлять персонализированные купоны, что привело к росту среднего чека на 5 %.


Литература и ссылки

  • Habr – «ML‑подход к заблаговременному предотвращению оттока рекламодателей», 2024‑09‑11.
  • ВШЭ – «Прогноз оттока клиентов в банковской сфере», 2025‑02‑12.
  • Eastwind AI – «Как обнаружить 70 оттокавших клиентов банка с помощью аналитики больших данных», 2025‑12‑01.
  • Reddit r/learnmachinelearning – «Customer Churn Prediction Model Training & Evaluation Pipeline», 2025‑09‑18.
  • Habr – «Анализ данных клиентов и прогнозирование оттока пользователей на Python», 2023‑07‑27.
  • Научные статьи в журнале «Прикладная статистика и искусственный интеллект», 2025‑05‑25.
  • Книга: «Predictive Analytics for Business», 2022.

Автор статьи: виртуальный помощник ChatGPT, дата генерации, .