GH GambleHub

Навчання моделей

1) Призначення та принципи

Мета навчання - отримати стійку, відтворювану та економічну модель, що покращує бізнес-метрики (Net Revenue, churn↓, fraud↓) при дотриманні RG/AML/Legal.

Принципи:
  • Problem→Metric→Data: спочатку завдання і операційна метрика/вартість помилок, потім датасет.
  • Point-in-time: жодна фіча/лейбл не використовує майбутнє.
  • Reproducibility: фіксовані seeds/версії, контроль артефактів.
  • Simplicity first: починаємо з базових моделей/фіч; ускладнюємо тільки при доведеній вигоді.
  • Privacy by design: PII-мінімізація, резидентність, аудит.

2) Формалізація задачі та метрик

Класифікація: churn/депозит/фрод/RG → PR-AUC, F1 @опер. поріг, KS, expected cost.
Регресія/прогноз: LTV/GGR → WAPE/SMAPE, P50/P90 помилка, покриття PI.
Ранжування/рекомендації: NDCG@K, MAP@K, coverage/diversity.
Онлайн-метрики: uplift Net Revenue, CTR/CVR, time-to-intervene (RG), abuse-rate.

Поріг за вартістю (псевдокод):
python best_thr = argmin_thr(cost_fp FPR(thr) + cost_fn FNR(thr))

3) Датасети і розбиття

Point-in-time join і SCD-сумісні вимірювання.
Дисбаланс класів: stratifed sampling, class_weight, focal loss, oversampling рідкісних подій.
Розбиття за часом/ринками/тенантами: train↔val↔test з «зазором» (gap) для витоків.

Temporal split (SQL-ідея):
sql
SELECT FROM ds WHERE event_time < '2025-07-01'     -- train
UNION ALL SELECT FROM ds WHERE event_time BETWEEN '2025-07-01' AND '2025-08-15' -- val
UNION ALL SELECT FROM ds WHERE event_time > '2025-08-15' -- test

4) Підготовка ознак

Вікна та агрегати: 10м/1ч/1д/7д/30д, R/F/M, швидкості/частки.
Категорії: hashing/one-hot; target encoding (time-aware).
Нормалізація/скейлінг: параметри від train, зберігаємо в артефактах.
Графові/NLP/гео: будуємо батчем, публікуємо в Feature Store (online/offline).

5) Базові алгоритми

GBDT: XGBoost/LightGBM/CatBoost - сильна база для табличних даних.
Логістична регресія/ElasticNet: інтерпретована/дешева.
Рекомендаційні: LambdaMART, факторизація, seq2rec.
Аномалії: Isolation Forest, AutoEncoder.
Часові ряди: Prophet/ETS/GBDT-за фічами календаря.

6) Регуляризація та запобігання перенавчанню

GBDT: `max_depth`, `num_leaves`, `min_data_in_leaf`, `subsample`, `colsample_bytree`, `lambda_l1/l2`.
NN: dropout/weight decay/early stopping.
Рання зупинка: по метриці на val з patience і мінімальним поліпшенням.

7) Підбір гіперпараметрів

Grid/Random для чорнового пошуку; Bayesian/Hyperband для тонкого налаштування.
Обмеження: бюджет ітерацій/часу/вартості, «no-overfit» на val (перехресна перевірка на декількох часових сплітах).

Ескіз:
python for params in sampler():
model = LGBMClassifier(params, random_state=SEED)
model. fit(X_tr, y_tr, eval_set=[(X_val, y_val)],
eval_metric="aucpr", early_stopping_rounds=200)
log_trial(params, pr_auc=pr_auc(model, X_val, y_val), cost=cost())

8) Калібрування ймовірностей

Platt/Isotonic на holdout; зберігати калібрувальну функцію як артефакт.
Перевіряти ЕСЕ/релайабіліті; переузгоджувати пороги по expected cost.

9) Інтерпретованість і пояснення

Global: feature importance/SHAP, пермутаційний внесок.
Local: SHAP для одиничних рішень (RG/AML кейси).
Документувати ризики та допустимість використання пояснень в онлайні.

10) Відтворюваність і артефакти

Seed скрізь: дані/модель/підбір/розбиття.
Артефакти: версія даних, фіч-пайплайн, ваги, калібрування, пороги, конфіги.
Deterministic builds: зафіксовані контейнери/залежності.

11) Трекінг експериментів

Реєструємо: git-коміт, версії датасета/фіч, конфіг моделі, метрики (off/online), артефакти та коментарі.
Правила іменування експериментів, теги (домен/ринок/модель).

12) Перенесення офлайн → онлайн

Єдиний код трансформацій (Feature Store); тест еквівалентності online/offline.
Сервінг: REST/gRPC, таймаути/ретраї/кеш; канарний/поетапний викати.
Поріг/політика: конфігуровані (фіча-прапори), audit і roll-back.

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

Дані/скор: PSI/KL; алерти при перевищенні порогів.
Калібрування та метрики: ECE, PR-AUC/KS на потокових лейблах.
Бізнес-метрики: uplift Net Revenue, fraud saved, RG-інтервенції, SLA.
Тригери retrain: з дрейфу/сезонності/релізів/терміну придатності.

14) Приватність, резидентність, fairness

PII-мінімізація: псевдоніми, CLS/RLS, окремі маппінги.
Residency: окремі каталоги/ключі (EEA/UK/BR); заборона крос-регіонних join'ів без підстав.
Fairness: слайс-аналіз (ринок/пристрій/вік аккаунта), disparate impact, equalized odds; коригування фіч/порогів/ваг.

15) Cost-інжиніринг

Вартість навчання: CPU/GPU-годинник, I/O, кількість прогонів.
Вартість інференсу: latency/cost per request; ліміти на онлайн-фічі і розмір моделі.
Матеріалізація: важкі фічі - офлайн; онлайнові - швидкі, кешовані.
Chargeback: бюджети на експерименти/реплеї.

16) Приклади (фрагменти)

LightGBM (класифікація, Python-ескіз):
python params = dict(
objective="binary", metric="average_precision",
num_leaves=64, learning_rate=0. 05, feature_fraction=0. 8,
bagging_fraction=0. 8, lambda_l1=1. 0, lambda_l2=2. 0
)
model = lgb. train(params, train_data,
valid_sets=[valid_data],
early_stopping_rounds=200, verbose_eval=100)
save_artifacts(model, scaler, feature_spec, cal_model)
Point-in-time вибірка (SQL-ідея):
sql
SELECT a. user_pseudo_id, a. asof, f. dep_30d, f. bets_7d, lbl. churn_30d
FROM features_at_asof f
JOIN asof_index a USING(user_pseudo_id, asof)
JOIN labels lbl USING(user_pseudo_id, asof);
Оцінка expected cost і вибір порогу:
python thr_grid = np. linspace(0. 01, 0. 99, 99)
costs = [expected_cost(y_val, y_proba >= t, cost_fp, cost_fn) for t in thr_grid]
t_best = thr_grid[np. argmin(costs)]

17) Процеси і RACI

R (Responsible): Data Science (моделі/експерименти), Data Eng (датасети/фічі/Feature Store), MLOps (сервінг/моніторинг/CI-CD-CT).
A (Accountable): Head of Data / CDO.
C (Consulted): Compliance/DPO (PII/RG/AML/DSAR), Security (KMS/секрети/аудит), SRE (SLO/вартість), Finance (ROI).
I (Informed): Продукт/Маркетинг/Операції/Підтримка.

18) Дорожня карта впровадження

MVP (3-6 тижнів):

1. Каталог задач і метрик (expected cost), point-in-time датасети.

2. Базові моделі (LogReg/GBDT) + калібрування + картки моделей.

3. Трекінг експериментів, фіксовані seeds/артефакти, reproducible builds.

4. Канарний онлайновий сервінг, пороги як конфіг, алерти метрик/дрейфу.

Фаза 2 (6-12 тижнів):
  • Байєсовський/Hyperband підбір, слайс-аналіз/fairness, retrain-тригери.
  • Економіка фіч/інференса, кеш/TTL, chargeback.
  • Документація формул метрик/порогів, what-if симуляції.
Фаза 3 (12-20 тижнів):
  • Мульти-регіональні пайплайни, DR/навчання, WORM-архів релізів.
  • Автогенерація звітів якості/калібрування, авто-перетренування по подіям.
  • Експерименти A/B/n з sequential testing і автоматичним зупином.

19) Чек-лист перед продом

  • Завдання і метрика бізнес-узгоджені; розрахована вартість помилок.
  • Датасет point-in-time; розбиття за часом/ринками; відсутній лейкедж.
  • Підбір/регуляризація, рання зупинка, калібрування ймовірностей.
  • Картка моделі: дані, фічі, метрики, ризики, fairness, власник.
  • Артефакти збережені (ваги, фіч-пайплайн, калібрування, пороги).
  • Тест еквівалентності online/offline пройдено; сервінг з фіча-прапором.
  • Моніторинг дрейфу/калібрування/бізнес-метрик; плани retrain/rollback.
  • Політики PII/DSAR/RTBF, резидентність і аудит доступу дотримані.
  • Вартість навчання/інференса вписана в бюджет; алерти SLA.

20) Анти-патерни і ризики

Лейкедж: фічі/лейбли з майбутнього, неузгоджені SCD.
Тюнінг «до синяви» на одній вал-вибірці: немає тимчасових сплітів/перехресної перевірки.
Відсутність калібрування і порогів за вартістю.
Розбіжність онлайн/офлайн фіч: різні результати на проді.
Ігнор fairness/слайсів: приховані провали на ринках/пристроях.
Безлімітні реплеї і дорогі фічі: зростання вартості без вигоди.

21) Підсумок

Навчання моделей - це керований процес: чітка задача і метрика, дисципліна даних (point-in-time), розумний тюнінг з регуляризацією, калібрування і відтворюваність, прозорий перенесення в онлайн і постійний моніторинг якості, вартості і ризиків. Слідуючи цьому плейбуку, ви отримуєте моделі, які передбачувано покращують продукт, утримання і комплаєнс - швидко, етично і надійно.

Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Telegram
@Gamble_GC
Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.