Ми зіткнулися з задачею: у SaaS-продукту з $1M MRR відтік (churn) становив 5% на місяць. Кожен відсоток зниження — це $120K додаткового ARR на рік. Але без точної моделі утримання перетворюється на стрільбу наосліп: знижки всім підряд спалюють маржу. Churn prediction вирішує це — модель виявляє клієнтів з високим ризиком відходу до того, як вони підуть. Ми будуємо систему, яка на практиці знижує відтік на 20%.
Проблеми, які вирішуємо
Розмитий таргет. У non-contractual сценаріях (e-commerce, ігри) немає явної позначки відходу — потрібно визначити поріг неактивності. Наприклад, якщо клієнт не здійснював покупку 90 днів — вважаємо таким, що пішов. Вибір порогу критичний: при 30 днях позначка є у 20% клієнтів, при 90 — у 5%.
Незбалансовані класи. 2-10% тих, хто йде, проти 90% тих, хто залишається. Без корекції модель дає 90% accuracy, але нульовий recall по тих, хто йде.
Feature engineering. RFM-метрики — основа, але потрібні ще тренди (зміна активності за 30 днів), adoption rate функцій, тікети підтримки. Ми використовуємо rolling window агрегації та diff-фічі. Наш підхід включає Optuna для гіперпараметричної оптимізації та Stratified K-Fold крос-валідацію для стабільності.
Як ми це робимо: стек та кейс
Стек: LightGBM (baseline) — LightGBM в 10 разів швидший за LSTM на табличних даних при порівнянній якості. CatBoost для категоріальних фіч, LSTM якщо критична послідовність подій. Logistic Regression поступається LightGBM на 15–25% за AUC-ROC. Feature store — PostgreSQL з pgvector для ембеддінгів. MLflow для експериментів, SHAP для інтерпретації.
Розгорнутий кейс з нашої практики: Наш клієнт — B2B SaaS з 50K юзерів. Baseline LightGBM дав PR-AUC 0.31. Після додавання trend features (зміна частоти логінів за 30 днів) — 0.41, +32%. Додавання sequence моделі (LSTM на послідовностях подій) підняло до 0.49, але з 4x latency. В результаті продакшн — ансамбль LightGBM + LSTM з каскадним скорингом.
Як визначити відтік у non-contractual сценарії?
Визначте пороговий період неактивності, після якого клієнт вважається таким, що пішов. Ми вибираємо X на основі аналізу розподілу інтервалів між покупками. Типові значення: 60-90 днів для B2B SaaS, 90-180 для e-commerce. Невірний вибір веде до шуму в цільовій змінній.
Чому LightGBM — хороший baseline для churn prediction?
LightGBM стійкий до пропусків, працює з категоріями (при правильному кодуванні), враховує нелінійні залежності. На стандартних задачах відтоку він випереджає логістичну регресію за AUC-ROC на 0.15–0.25 і при цьому швидший за XGBoost в 2-3 рази.
Розробка та розгортання моделі
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 якщо поведінкові патерни важливі.
Робота з незбалансованими класами
Методи боротьби з дисбалансом включають використання class weights (class_weight='balanced' в sklearn) — найпростіший fix; SMOTE генерує синтетичні приклади minority класу, але може внести шум; Focal Loss в нейромережах downweights easy examples; підбір порогу класифікації по Precision-Recall curve (не 0.5) — безкоштовний спосіб підвищити Precision@K. Для оцінки використовуємо 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: API endpoint POST /score, <100 мс відповідь, оновлення скора в CRM в реальному часі. Наше рішення SaaS Churn Prediction інтегрується з будь-якою CRM та забезпечує ML деплой моделі відтоку з мінімальними затримками.
Утримання за сегментами:
- High risk: особистий дзвінок від Customer Success або знижка
- Medium risk: автоматизована email-кампанія з value reminder
- Low risk: без дій (не витрачати ресурси)
Оцінка бізнес-ефекту
Uplift modeling — правильний спосіб виміряти реальну цінність системи. Звичайний A/B тест: 50% high-risk клієнтів отримують утримання (treatment), 50% — ні (control). Вимірюємо різницю в churn rate. Компанії, що використовують churn prediction, знижують відтік на 15-20%. Середня економія від впровадження — $30–50K на 10K клієнтів. При базі 50 000 клієнтів економія від зниження відтоку на 20% становить $600 000 ARR. Інвестиція в $50 000 на впровадження приносить $500 000 додаткового ARR.
Процес і терміни робіт
Процес роботи
- Аналітика: збір та очищення даних, визначення churn-визначення, аналіз розподілу.
- Feature engineering: RFM, тренди, адопшен фіч, контрактні дані.
- Моделювання: baseline (LightGBM), експерименти (CatBoost, LSTM), підбір порогів.
- Тестування: offline (AUC, F1, Precision@K), online A/B uplift test.
- Деплой: batch scoring weekly, real-time API (<100ms), інтеграція з CRM.
- Моніторинг: дрейф даних, дрейф моделі, автоматичний перезапуск.
Що входить в роботу
- Звіт з визначення churn (вибір таргету)
- Baseline-модель (LightGBM) + SHAP-звіт
- Документація фіч та пайплайну
- Інтеграція batch scoring у вашу CRM
- Навчання команди (2 години)
- Підтримка 3 місяці після деплою
Терміни орієнтовно
Перша модель з базовими RFM-фічами — 2-3 тижні. Повноцінна система з feature store, моніторингом дрейфу та CRM-інтеграцією — 8-10 тижнів. Ми — команда з 5+ років досвіду в ML-продакшені, 30+ успішних проєктів з churn prediction. Наша команда сертифікована за стандартами AWS Machine Learning Specialty та має досвід роботи з клієнтами з оборотом $10M+. Ми гарантуємо якість деплою та надаємо підтримку 24/7. Зв'яжіться, щоб ми оцінили ваш проєкт і запропонували точні терміни. Отримайте консультацію щодо впровадження churn prediction.
Приклад коду для розрахунку RFM-фіч
import pandas as pd
def rfm_features(transactions, as_of_date):
"""Розрахунок Recency, Frequency, Monetary для кожного клієнта."""
rfm = transactions.groupby('customer_id').agg(
recency=('transaction_date', lambda x: (as_of_date - x.max()).days),
frequency=('transaction_id', 'nunique'),
monetary=('amount', 'sum')
).reset_index()
return rfm







