Разработка AI-системы предсказания оттока абонентов Churn в телекоме
Телеком — классическая вертикаль для churn prediction: четкие данные о поведении абонента, регулярные транзакции, стоимость привлечения нового клиента в 5-7 раз выше удержания. Точная модель позволяет направить retention-бюджет только на тех, кто реально уйдёт.
Специфика телеком churn
Типы оттока:
- Voluntary churn: абонент сознательно уходит к конкуренту или отказывается от услуги
- Involuntary churn: отключение из-за неплатежа
- Early churn: уход в первые 90 дней (особый сегмент, часто fraud или misfit)
Contractual vs. prepaid:
- Постоплатные тарифы (contract): четкая дата расторжения. Модель предсказывает расторжение при продлении.
- Предоплатные (prepaid): нет явного контракта. Определение оттока через неактивность: 30/60/90 дней без пополнения.
Feature Engineering из BSS/OSS систем
Использование услуг:
features_usage = {
# Голос
'voice_outgoing_min_30d': sum(voice_outgoing_last_30d),
'voice_incoming_min_30d': sum(voice_incoming_last_30d),
'unique_called_numbers': len(unique_called_30d),
'international_calls_flag': has_intl_calls_last_month,
# Данные
'data_usage_gb_30d': sum(data_usage_last_30d),
'data_usage_trend': data_30d - data_60_30d, # рост/падение потребления
'wifi_calls_ratio': wifi_calls / total_calls,
# SMS (снижается, но ещё информативно)
'sms_out_30d': sms_count_outgoing,
# Финансы
'arpu': avg_monthly_revenue,
'arpu_trend': arpu_30d - arpu_90d,
'payment_delays': count(payment_delay > 5d),
'last_payment_days_ago': days_since_last_payment
}
Взаимодействие с оператором:
features_interaction = {
'cs_contacts_30d': count(support_contacts_last_30d),
'complaints_90d': count(formal_complaints_90d),
'nps_score': last_nps_response,
'app_logins_30d': mobile_app_logins_count,
'mcare_self_service_ratio': self_service_actions / total_contacts,
'billing_disputes': count(billing_disputes_ever)
}
Конкурентный контекст:
- Номера из сети перенесены к конкуренту в последние 30 дней (MNP-статистика по сегменту)
- Цена конкурентного тарифа-аналога: чем выше gap в цене, тем выше риск
Multi-horizon модели
30-дневный горизонт: для персональных retention-офферов (SMS, звонок агента) 90-дневный горизонт: для сегментных кампаний удержания 180-дневный горизонт: для стратегического анализа клиентской базы
Разные горизонты — разные признаки:
- 30 дней: сигналы последней недели важны (звонок в CS, негативный NPS)
- 90 дней: тренды за 3 месяца (постепенное снижение использования)
Uplift модель для retention ROI
Наивный подход: предложить скидку всем high-risk абонентам. Проблема: часть уйдёт в любом случае, часть останется без скидки. Скидка нужна только "persuadables".
Матрица 2×2:
| Без предложения | С предложением | |
|---|---|---|
| Останется | Sure Things | Sure Things |
| Уйдёт | Lost Causes | Persuadables |
Uplift model: Uplift = P(retained | treated) - P(retained | not treated)
Таргетируем только Persuadables с uplift > 0.
Meta-learner (T-Learner):
# T-Learner: два отдельных классификатора для treatment и control
model_treatment = LightGBMClassifier().fit(X_treated, y_treated)
model_control = LightGBMClassifier().fit(X_control, y_control)
uplift = model_treatment.predict_proba(X)[:, 1] - model_control.predict_proba(X)[:, 1]
Персонализация retention-офферов
Когда предложить и что:
Timing:
- За 30-60 дней до окончания контракта: максимальная чувствительность
- После negative NPS: в течение 48 часов
- После обращения в CS с жалобой: сразу же, через агента
Оффер selection model: Next Best Offer: мультиклассовая классификация (скидка / бонусный трафик / апгрейд тарифа / бесплатный роуминг). Feature: CLV, ARPU, тип потребления, история офферов.
Сроки: базовая churn модель на BSS-данных — 4-5 недель. Система с uplift modeling, NBO и CRM-интеграцией для retention кампаний — 3-4 месяца.







