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; хранить калибровочную функцию как артефакт.
Проверять ECE/релайабилити; пересогласовывать пороги по 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).

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