Реализация предсказания оттока клиентов (Churn Prediction)
Churn prediction — одна из самых измеримых ML-задач в бизнесе: каждый процент снижения оттока напрямую конвертируется в LTV и ARR. Для SaaS с $1M MRR снижение churn с 5% до 4% в месяц даёт ~$120K дополнительного ARR за год.
Определение оттока
Прежде чем строить модель — чёткое определение таргета:
- Contractual churn: клиент не продлил подписку (B2B SaaS, телеком)
- Non-contractual churn: клиент перестал покупать (e-commerce, мобильные игры)
- Soft churn: снизил активность/потребление (risk of churn в ближайшие 60 дней)
Для non-contractual чёткой метки нет — нужно определить пороговый период неактивности: если клиент не совершил покупку X дней — считается ушедшим. Выбор X влияет на баланс классов и точность модели.
Feature Engineering
RFM-метрики (наиболее важные предикторы):
- Recency: дней с последнего действия/транзакции
- Frequency: количество сессий/покупок за 30/90/180 дней
- Monetary: сумма трат за период
Поведенческие фичи:
- Trend features: рост/снижение активности за последние 30 дней vs. предыдущие 30
- Feature adoption rate: какой % ключевых функций продукта использует клиент
- Support tickets: количество обращений, тип, NPS после решения
Контрактные/демографические:
- Срок с момента онбординга
- Тип тарифного плана
- Сегмент (SMB / Enterprise)
- Канал привлечения
Выбор алгоритма
| Алгоритм | Когда использовать | Точность | Интерпретируемость |
|---|---|---|---|
| Logistic Regression | Baseline, нужна интерпретируемость | Средняя | Высокая |
| LightGBM / XGBoost | Табличные данные, нет time series | Высокая | Средняя (SHAP) |
| CatBoost | Много категориальных фич | Высокая | Средняя |
| LSTM / Transformer | Последовательности событий важны | Очень высокая | Низкая |
Рекомендация: начать с LightGBM как baseline, добавить Sequence Model если поведенческие паттерны важны (когда клиент снижает активность важнее, чем итоговые агрегаты).
Работа с несбалансированными классами
Типичное соотношение: 2-10% клиентов уходят за период. Без корректировки модель предсказывает "останется" для всех с 90%+ accuracy, но 0% Recall для churners.
Методы:
- Class weights:
class_weight='balanced'в sklearn — простейший fix - SMOTE (Synthetic Minority Over-sampling): генерация синтетических примеров minority класса
- Focal Loss: в нейросетях — downweights easy examples
- Threshold optimization: выбор порога классификации по Precision-Recall curve, не 0.5
Метрики для оценки:
- F1-score (взвешенный) — основная
- AUC-ROC — способность ранжировать
- Precision@K — точность среди топ-K клиентов по риску (наиболее важная для маркетинга)
Deployment и использование
Batch scoring:
- Еженедельный запуск модели по всей клиентской базе
- Результат: таблица с churn probability для каждого клиента
- Сегментация: high risk (> 0.7), medium risk (0.4-0.7), low risk (< 0.4)
Real-time scoring:
- Для key events: вход в приложение, обращение в поддержку, снижение потребления
- API endpoint: POST /score, < 100 мс ответ
- Обновление скора в CRM в реальном времени
Удержание по сегментам:
- High risk: личный звонок от Customer Success или скидка
- Medium risk: автоматизированная email-кампания с value reminder
- Low risk: без действий (не тратить ресурсы)
Оценка бизнес-эффекта
Uplift modeling — правильный способ измерить реальную ценность системы. Обычный A/B тест: 50% high-risk клиентов получают удержание (treatment), 50% — нет (control). Измеряем разницу в churn rate.
Uplift > ROI акции по удержанию = положительный бизнес-эффект.
Сроки: первая работающая модель с базовыми RFM-фичами — 2-3 недели. Полноценная система с feature store, мониторингом дрейфа и CRM-интеграцией — 8-10 недель.







