Практичный бейзлайн для прогнозирования оттока игроков в iGaming
Как определить отток, с каких признаков начать и почему откалиброванные вероятности важнее высокого AUC.
Демонстрационная статья: пример публикации, показывающий оформление блога.
Рано или поздно почти каждый iGaming-оператор просит модель оттока. Прежде чем браться за глубокое обучение, стоит построить простой и честный бейзлайн. Он покажет, сколько сигнала на самом деле есть в данных, и задаст планку для всех последующих моделей.
1. Определите отток явно
Игроки редко закрывают аккаунт, поэтому отток приходится определять через неактивность. Распространённый вариант:
Игрок считается ушедшим, если в течение 30 дней после даты наблюдения он не сделал ни одной ставки на реальные деньги.
Окно должно соответствовать тому, как действует бизнес. Если CRM-команда запускает удерживающие кампании еженедельно, горизонт в 7 или 14 дней может оказаться полезнее, чем 30 дней.
2. Начните с поведенческих признаков
Давность, частота и денежная ценность (RFM), а также паттерны сессий покрывают большую часть сигнала:
- дни с последней ставки, депозита и входа в аккаунт
- количество сессий и ставок за последние 7, 14 и 30 дней
- динамика депозитов и чистого игрового дохода (NGR)
- доли продуктов (казино, спорт, лайв)
- использование бонусов и активность только на бонусах
3. Обучите бейзлайн на градиентном бустинге
import lightgbm as lgb
from sklearn.calibration import CalibratedClassifierCV
model = lgb.LGBMClassifier(
n_estimators=500,
learning_rate=0.05,
num_leaves=31,
class_weight="balanced",
)
# Разбиение по времени: обучаемся на прошлом, валидируемся на более поздних когортах
calibrated = CalibratedClassifierCV(model, method="isotonic", cv=3)
calibrated.fit(X_train, y_train)
churn_proba = calibrated.predict_proba(X_valid)[:, 1]
Всегда разбивайте данные по времени, а не случайно. Случайное разбиение допускает утечку будущего поведения в обучающую выборку, и офлайн-метрики выглядят лучше, чем есть на самом деле.
4. Калибровка важнее высокого AUC
Бюджеты на удержание распределяются по ожидаемой ценности, поэтому предсказанная вероятность должна означать ровно то, что она показывает. Модель с AUC 0,85, у которой 0,3 — это действительно 0,3, полезнее модели с AUC 0,88 и плохой калибровкой. Проверяйте калибровочные кривые и Brier score, а не только метрики ранжирования.
Вывод
Чётко определённый таргет, валидация с учётом времени и откалиброванные вероятности дают сильный, понятный и готовый к продакшену бейзлайн. Только после этого имеет смысл пробовать более сложные архитектуры.