Logo GH

Прогноз оттока игроков

Прогноз оттока игроков

Цель прогноза оттока — заранее выявить игроков с риском не вернуться и запустить управляемые действия (ре-активация, ограничители RG, персональные офферы), максимизируя ценность и минимизируя вред. Ниже — end-to-end каркас от данных до эксплуатации.

1) Определения и рамки

Единица учета: пользователь (user/master_id) — по умолчанию.
Правило оттока (churn rule): отсутствие целевой активности ≥ T дней (например, 14/30). Активность фиксируйте: ≥1 сессия / ставка / депозит.
Горизонт прогноза: H дней (риск оттока в следующие 7/14/30 дней).
Cutoff дата: день формирования фич; метки не должны использовать информацию позже cutoff.

💡 В паспорте метрик: единица, активность, T, H, TZ, исключения (боты/QA/фрод).

2) Разметка меток без утечек (Point-in-Time)

Target (классификация): `churn_next_H=1`, если игрок не активен ни разу в окно (t, t+H] и далее выполняет правило T.
Time-to-event (выживаемость): время до оттока или цензуры; хорошо для планирования капов/очередей.
Скользящие срезы: генерируйте обучающие примеры на разных датах с лагами, чтобы не утекало будущее.
Окна истины: ждите подтверждение оттока T до фиксации метки (delayed truth).

3) Фичи и окна

Recency/Frequency/Monetary: дни с последней активностью/депозитом, интенсивности за окна 7/14/30/90, ARPPU/частота.
Поведение и контент: категории игр, разнообразие, «серийность» (run-length), время суток/недели.
Маркетинг: открытие пушей/писем, реакции на офферы, отписки.
Риски/RG/фрод: флаги и счетчики, аккуратно — как guardrails.
Календарь: праздники/матчи/зарплатные дни, сезонные фичи (dow, dom, wom).
Идентичности/устройства: платформа/OS/изменения девайса, стабильность IP/ASN.
Онлайн/офлайн паритет: фичестор с одинаковыми рецептами и временем среза.

4) Моделирование

4.1 Классификация (риск оттока в окно H)

Логистическая регрессия (интерпретируемо), GBM/Random Forest (сильные бейзлайны), Tab/Seq-NN.
Пороги по стоимости ошибок, не по «красивому ROC».

4.2 Выживаемость / Hazard (время до оттока)

Kaplan–Meier (форма кривой), Cox PH / AFT, discrete-time hazard (логит по дням с календарем).
Дают вероятность оттока по времени, позволяют планировать частоту контактов и капы.

4.3 Последовательные и гибриды

RNN/TFT/Transformer с временными признаками и масками пропусков.
Гибрид: бинарный риск и время до события → лучшее принятие решений.

4.4 Uplift-модели

Прогнозируют прирост удержания от контакта; применяйте, если есть лог действий/экспериментов.

5) Оценка и калибровка

Дисбаланс классов: основные — PR-AUC, Recall@FPR≤x%, Precision@k.
Калибровка вероятностей: Brier, reliability plots; Platt/Isotonic.
Время: backtesting с разнесенными по календарю фолдами (rolling origin).
Стабильность: разброс метрик по сегментам (страна/канал/платформа).
Выживаемость: интегральная ошибка по кривой риска, калибровка S(t).

6) Пороги, гистерезис и политика решений

Разделите зоны:
  • `score ≥ τ_block` → сильная интервенция (персональный оффер/звонок)
  • `τ_review ≤ score < τ_block` → мягкий контакт (пуш/e-mail)
  • `score < τ_review` → без действия

Гистерезис: входной порог выше выходного, чтобы не «мигать».
Кулдауны: минимальные интервалы повторных касаний per user/channel.
Guardrails: ROMI≥0, жалобы≤X, RG-ограничения, частота контактов.

Пример decision table

УсловиеКонтекстДействиеКулдаунGuardrails
`risk≥0.85` & `value_q≥0.8`VIPперсональный оффер LROMI≥0
`0.65≤risk<0.85` & `no_session≥7д`масс-сегм.пуш + e-mail сценарийжалобы≤X
`RG_risk≥τ`любойпауза + совет RGFPR≤1%

7) Экономика решения

Ожидаемая ценность:
[
EV = p_{\text{удержания	действие}} \cdot LTV_{\text{future}}

p_{\text{вред}} \cdot Harm - Cost
]

Оптимизируйте пороги и аллокацию каналов по EV, а не по голому CR.

8) Эксперименты и причинность

A/B: стратегии контактов/офферов; основная метрика — retention uplift (D7/D30), guardrails — жалобы/RG.
Квазиэксперименты: DiD/синтетический контроль при региональных выкативах.
Uplift-оценка: Qini/AUUC, uplift@k.

9) Деплой и онлайн-контур

Скоринг: p95 ≤ 100–300 мс; идемпотентность запросов, `correlation_id`.
Оркестратор: гарантированная доставка, retry/backoff, DLQ, rate-limit per channel/user.
Журнал решений: `signal→score→decision→action→outcome` с версиями модели/политики.
Feature parity: одинаковые фичи онлайн/офлайн; временные срезы — строго до cutoff.

10) Мониторинг и дрейф

Качество: PR-AUC/Recall@FPR по скользящему окну, калибровка; доля в зонах `block/review`.
Дрейф: PSI/KL по ключевым фичам, shift целевой доли, «новые» паттерны.
Операции: latency, таймауты, % фолбэков, очередь контактов, жалобы.
Fairness: дифференция ошибок/порогов по сегментам; аудит объяснимости.

11) Псевдо-SQL/рецепты

A. Формирование метки churn_next_14 (классификация)

sql
WITH activity AS (
SELECT user_id, DATE_TRUNC('day', ts) AS d
FROM event_activity
),
snap AS (-- cut-off date
SELECT DISTINCT DATE_TRUNC('day', ts) AS cut
FROM event_activity
WHERE ts BETWEEN:train_from AND:train_to
),
label AS (
SELECT s. cut, a. user_id,
CASE WHEN NOT EXISTS (
SELECT 1 FROM activity a2
WHERE a2. user_id = a. user_id
AND a2. d > s. cut AND a2. d <= s. cut + INTERVAL '14 day'
) THEN 1 ELSE 0 END AS churn_next_14
FROM snap s
JOIN (SELECT DISTINCT user_id FROM activity) a ON 1=1
)
SELECT FROM label;

B. Rolling-фичи (7/30/90) с point-in-time

sql
SELECT u. user_id, s. cut AS cut_day,
SUM(CASE WHEN a. d > s. cut - INTERVAL '7 day' AND a. d <= s. cut THEN 1 END) AS act_7d,
SUM(CASE WHEN a. d > s. cut - INTERVAL '30 day' AND a. d <= s. cut THEN 1 END) AS act_30d,
SUM(CASE WHEN p. d > s. cut - INTERVAL '30 day' AND p. d <= s. cut THEN p. amount ELSE 0 END) AS rev_30d,
DATE_PART('day', s. cut - MAX(a. d)) AS recency_last_act
FROM snap s
JOIN users u ON 1=1
LEFT JOIN activity a ON a. user_id = u. user_id AND a. d <= s. cut
LEFT JOIN payments p ON p. user_id = u. user_id AND p. d <= s. cut
GROUP BY 1,2;

12) Шаблоны артефактов

Паспорт модели оттока (template)

ID/версия: `CHURN_14D_GBM_v4`

Target/окно: `churn_next_14`, PIT-срезы по дням

Фичи: RFM, контент, маркетинг, календарь, устройство

Метрики: PR-AUC≥0.45, Recall@FPR≤1% ≥ 0.30, Brier≤X

Калибровка: isotonic

Пороги: `τ_block/τ_review` с гистерезисом

SLO: скоринг ≤ 150 мс p95; генерация оффлайн отчета ≤ 06:00

Владельцы, дата ревизии, runbook деградации

Decision-ready отчет (скелет)

«Churn 14d: риск по сегментам, топ-причины, forecast конверсии ре-активации»

Риски: доля high-risk выросла в платформах X/Y (+Δ п.п.)

Рекомендации: увеличить бюджет контактов в сегменте A, сменить канал B, RG-ограничители в сегменте C

13) Безопасность, приватность, этика

PII-минимизация: токенизация идентификаторов, RLS/CLS.
Прозрачность: причины решения/контакта (top-features/правила) доступны саппорту.
Этика/RG: не таргетируйте уязвимые группы агрессивными офферами; cap частоты контактов.

14) Частые ошибки

Метка использует будущее (label leakage), смешение TZ/окон.
Оценка по ROC-AUC при 1% таргете без PR-AUC / Recall@FPR.
Нет калибровки — пороги настроены «вслепую».
Отсутствие гистерезиса/кулдаунов → «мигание» контактов и жалобы.
Не связали риск с EV/LTV — «лечим» тех, кого невыгодно лечить.
Онлайн/офлайн рассинхрон фич — в проде качество падает.

15) Чек-лист перед релизом контура

  • Определены T/H/TZ, активность, исключения; PIT-процедуры оформлены
  • Датасеты без утечек; rolling-валидация, бенчмарки и калибровка
  • Пороговая политика, гистерезис, капы и guardrails документированы
  • Оркестратор действий, идемпотентность, аудит «signal→decision→action»
  • Мониторинг качества/дрейфа/fairness, алерты и runbooks
  • Uplift-оценка и/или A/B готова; отчет decision-ready (с EV)
  • Версии модели/фич/метрик, владельцы, SLO прописаны

Итог

Прогноз оттока работает только как система: четкая разметка без утечек → информативные фичи → подходящая модель (классификация и/или выживаемость) → метрики, калибровка и пороги от стоимости ошибок → безопасная оркестрация действий → мониторинг дрейфа и fairness. Такой контур дает решения, а не только «риски»: кого, когда и как контактировать, чтобы повышать удержание и LTV.

Contact

Свяжитесь с нами

Обращайтесь по любым вопросам или за поддержкой.Мы всегда готовы помочь!

Telegram
@Gamble_GC
Начать интеграцию

Email — обязателен. Telegram или WhatsApp — по желанию.

Ваше имя необязательно
Email необязательно
Тема необязательно
Сообщение необязательно
Telegram необязательно
@
Если укажете Telegram — мы ответим и там, в дополнение к Email.
WhatsApp необязательно
Формат: +код страны и номер (например, +380XXXXXXXXX).

Нажимая кнопку, вы соглашаетесь на обработку данных.