GH GambleHub

Feature Engineering және белгілерді іріктеу

1) Мақсаты және қағидаттары

Мақсаты: офлайн және онлайн арасында келісілген орнықты, түсіндірілетін және үнемді белгілерді құрастыру.

Принциптері:
  • Point-in-time: фичтер шешу сәтінде қол жетімді деректерден келешексіз есептеледі (anti-leakage).
  • Domain-first: фичтер бизнес-механиктерді (депозиттер, сессиялар, ойындар жанрлары, RG/AML) көрсетеді.
  • Reuse & Contracts: фичи - Feature Store-дағы нұсқалар, иелері, формулалар және SLO.
  • Cost-aware: latency және есептеу/сақтау құнын есептейміз → тек өзін-өзі ақтайтын материалданамыз.
  • Observability: мониторинг дрейф/тұрақтылық/калибрлеу; online/offline баламалық тест.

2) iGaming үшін белгілердің таксономиясы

RFM/мінез-құлық: терезелер бойынша recency/frequency/monetary (10м/1ч/1д/7д/30д).
Сессиялық: ұзақтығы, үзілістері, құрылғыларды ауыстыру/ASN, әрекет жылдамдығы.
Қаржылық: депозиттер/қорытындылар/чарджбектер, төлем әдістерінің үлестері, FX-қалыпқа келтіру.
Ойын: жанрлық профильдер, провайдерлердің құбылмалылығы, RTP-кластерлер, win-streak.
Маркетингтік: арналар/UTM, науқанға жауап, saturation/cooldown.
RG/AML: лимиттер, өздігінен алып тастау жалаулары, velocity-паттерндер, BIN/IP қайта пайдалану.
Гео/уақыт: жергілікті күнтізбелер/мерекелер, белдеулер сағаты, кешкі/түнгі.
Графалық: user-card-device-ip байланыстары, орталықтығы/компоненттері, фрод «сақиналары».
NLP/мәтіндер: тақырыптар және тикеттер/чаттардың үндестігі; негізгі шағымдар.
Операциялық: провайдерлердің артта қалуы/қателіктері, сессиялардың тұрақтылығы (SRE-модельдер үшін).


3) Терезелер мен агрегаттар (point-in-time)

Типтік терезелер: 10м/1с/24с/7д/30д. Әрбір терезе үшін - count/sum/mean/std/last/max/min, ratio және rate.

SQL-шаблон (30д депозиттер, болашағы жоқ):
sql
SELECT u.user_pseudo_id, t.asof,
SUM(CASE WHEN e.type='deposit'
AND e.event_time>=t.asof - INTERVAL '30' DAY
AND e.event_time< t.asof THEN e.amount_base ELSE 0 END) AS dep_30d,
COUNT(CASE WHEN e.type='bet'
AND e.event_time>=t.asof - INTERVAL '7' DAY
AND e.event_time< t.asof THEN 1 END) AS bets_7d
FROM silver.fact_events e
JOIN (SELECT user_pseudo_id, DATE(event_time) AS asof
FROM silver.fact_events GROUP BY 1,2) t USING(user_pseudo_id)
JOIN dim.users_scd u ON u.user_pseudo_id=t.user_pseudo_id
AND t.asof >= u.valid_from AND (u.valid_to IS NULL OR t.asof < u.valid_to)
GROUP BY 1,2;

4) Санаттық кодтау

One-Hot/Hashing: сирек/жоғары-түбегейлі санаттар үшін (ойындар, провайдерлер).
Target Encoding (TE): k-fold/leave-one-out және time-aware тегістеумен (anti-leakage) таргет бойынша орташа.
WOE/IV (тәуекел-скоринг): IV және тұрақтылықты бақылайтын монотонды биндер.

TE (жалған құжат, time-aware):
python for fold in time_folds:
train_idx, val_idx = split_by_time(fold)
te_map = target_mean(train[["provider_id","label"]])
val["provider_te"] = val["provider_id"].map(te_map).fillna(global_mean)

5) Қалыпқа келтіру және скейлинг

Мин-макс/Robust/Z-score - жаттығу терезесі бойынша; параметрлерді артефактілерде сақтаймыз.
Сомалар/ставкалардың ұзын қалдықтары үшін лог-түрлендіру.
Box-Cox/Yeo-Johnson - симметрияландыру қажет болғанда.


6) Уақытша және маусымдық фичтер

Күнтізбелік: апта күні, сағат, базар мерекесі (ref. calendar), pay-day.
Кезеңділігі: жылжымалы орташа/экспон. тегістеу (EMA), deltas (t − t-1).
Event-based: соңғы депозит/ұтыс/ұтыс, «салқындату» уақыты.


7) Графалық белгілер (фрод/AML)

Ұштары: user/card/device/ip. Қабырғалар: транзакциялар/сессиялар/бірлескен белгілері.
Фич: компонент өлшемі, degree, betweenness, pagerank, triads, қайта пайда болу.
Шаблон: nightly batch баған жасайды → эмбеддингтер/орталықтығы → online кэш.


8) NLP-фичтер (саппорт/чат/ревью)

Негізгі: TF-IDF/NMF тақырып, sentiment, ұзындығы, шағым жиілігі.
Ілгерілетілген: эмбеддингтер (Sentence-BERT) → терезеден тикеттер бойынша орташалау.
PII: саясат бойынша қосымша және пост-бүркемелеу (email, PAN, телефондар).


9) Гео/ASN және құрылғылар

IP → Geo/ASN: кэштеу және жаңарту; синхронды сұрауларды онлайн режимінде таймаут/кэшсіз жасамаңыз.
Фичтер: ASN/DeviceID тұрақтылығы, ауысым жиілігі, логиндер арасындағы қашықтық.


10) Anti-Leakage және online/offline келісу

Point-in-time join, терезелерде/лейблдерде болашақ оқиғалар жоқ.
Офлайн және онлайн үшін бір трансформация коды (library).
Баламалық тест: T іріктемесінде фичтің онлайн-мәндерін офлайнмен (MAE/MAPE) салыстырамыз.

YAML-спека фичи:
yaml name: deposits_sum_10m owner: ml-risk slo: {latency_ms_p95: 20, availability: 0.999}
offline:
source: silver.payments transform: "SUM(amount_base) OVER 10m BY user_pseudo_id"
online:
compute: "streaming_window: 10m"
tests:
- compare_online_offline_max_abs_diff: 0.5

11) Белгілерді іріктеу (feature selection)

11. 1 Filter

Вариация/корреляция: константаларды алып тастаймыз,ρ>0. 95 телнұсқа.
Mutual Information (MI): желілік емес байланыстарды ранжирлеу.
IV/KS (тәуекел): AML/RG-дегі бинарлық таргеттер үшін.

11. 2 Wrapper

RFE/Sequential FS: шағын жиынтықтарда/логистикалық регрессияда.
Stability Selection: бутстрэп-сэмплинг кезіндегі тұрақтылық.

11. 3 Embedded

L1/Lasso/ElasticNet: сирету.
Ағаштар/GBDT: importance/SHAP іріктеу және бизнес-интерпретация үшін.
Group Lasso: топтық іріктеу (бір айнымалының бин-фич жинақтары).

Пайплайн (нобай):
python
X = preprocess(raw)        # one-hot/TE/scale
X = drop_const_and_corr(X, thr=0.95)
rank_mi = mutual_info_rank(X, y)
keep1 = topk(rank_mi, k=200)
model = LGBMClassifier(...)
model.fit(X[keep1], y)
shap_vals = shap.TreeExplainer(model).shap_values(X[keep1])
keep2 = stable_topk_by_shap(shap_vals, k=60, bootstrap=20)
final = keep2

12) Тұрақтылық, дрейф және калибрлеу

Drift: PSI/KS фигура және жиілік бойынша; шектен асқан кездегі аллергия.
Тұрақтылық: «нәзік» TE/WOE (түбегейлілік/ілгерілеу) қадағалаймыз.
Калибрлеу: Platt/Isotonic; reliability есептері.
Slice-талдау: нарықтар/провайдерлер/құрылғылар - метриктердің бэнчмаркалары және күтілетін қателер құны.


13) Cost-инжиниринг және өнімділік

Cost per Feature (CPF): CPU/IO/желі/сақтау → модельге бюджет.
Материалдандыру: ауыр offline, жеңіл online; Ыстық фич үшін TTL/кэш.
Қашықтағы lookups: тек async + кэш; p95 <20-30 мс онлайн фичке.
Chargeback: командалар бойынша фич/инференс құнын есепке алу.


14) Feature Store (келісім өзегі)

Тізілім: аты, формуласы, иесі, SLO, тесттер, нұсқалары.
Online/Offline синхрондау: бір трансформация коды, теңдік тесті.
Логи/аудит: формуланы кім өзгертті; нұсқаның модель метрикасына әсері.


15) Мысалдар

ClickHouse: минуттық ставкалар агрегаттары:
sql
CREATE MATERIALIZED VIEW mv_bets_1m
ENGINE = SummingMergeTree()
PARTITION BY toDate(event_time)
ORDER BY (toStartOfMinute(event_time), user_pseudo_id)
AS
SELECT toStartOfMinute(event_time) AS ts_min,
user_pseudo_id,
sum(stake_base) AS stake_sum_1m,
count() AS bets_1m
FROM stream.game_events
GROUP BY ts_min, user_pseudo_id;
Anti-correlation drop (SQL идеясы):
sql
-- вычислить корреляции и удалить пары с     ρ    >0.95, сохранив более «дешевую» фичу
WOE биннинг (нобайы):
python bins = monotonic_binning(x, y, max_bins=10)
woe = compute_woe(bins)
iv = compute_iv(bins)

16) Процестер және RACI

R (Responsible): Data Eng (конвейерлер/Feature Store), Data Science (дизайн фич/іріктеу/метрика).
A (Accountable): Head of Data / CDO.
C (Consulted): Compliance/DPO (PII, residency), Risk/AML/RG (ережелер), SRE (SLO/құны), Security.
I (Informed): Өнім/Маркетинг/Операциялар/Қолдау.


17) Жол картасы

MVP (3-5 апта):

1. point-in-time формулалары бар топ-50 фич каталогы (Payments/Gameplay).

2. Feature Store v1 (online/offline) + баламалық тест.

3. Негізгі іріктеу: константалар/корреляциялар → MI → L1/SHAP shortlist (60 бетке дейін).

4. Дрейф мониторингі және cost-дашборд.

2-фаза (5-10 апта):
  • Time-aware валидациясы бар TE/WOE, графикалық және күнтізбелік фичтер.
  • Slice-талдау және fairness, ықтималдықтарды калибрлеу.
  • Ауыр офлайн фич, кэш онлайн, квоталарды материалдандыру.
3-фаза (10-16 апта):
  • Құжаттама автогенерациясы fich stability-selection в CI.
  • «Қымбат және пайдасыз» фичтерді авто-деактивациялау (CPF ↑, салым ↓).
  • A/B фич жиынтықтарын салыстыру, expected-cost есептері.

18) Азық-түлік алдындағы чек-парағы

  • Барлық фичтердің ерекшеліктері бар (owner, формула, нұсқалар, SLO).
  • point-in-time және online/offline баламалылығы тесттерінен өтті.
  • Таңдау орындалды: filter → embedded (SHAP/L1) → stability.
  • Дрейф және reliability мониторингі теңшелген; табалдырықтар да бар.
  • CPF/latency бюджетке жазылады; ауыр фичтер материалданған.
  • PII-саясат сақталған (CLS/RLS, токенизация, резиденттік).
  • Құжаттамалар мен пайдалану мысалдары каталогқа қосылды.

19) Анти-паттерндер және тәуекелдер

Лейкедж (болашақ оқиғалар/промо салдары).
Келісілмеген online/offline формулалары.
Hashing/TE жоқ жоғары-түбегейлі санаттардан артық one-hot.
«Қымбат» сапа өсімі өлшенбейтін фичтер.
Талдау slice/fairness болмауы - жасырын тозулар.
TE/WOE уақыт-aware кросс-валидациясы жоқ → қайта оқыту.


20) Қорытынды

Feature Engineering - бұл басқарылатын пән: point-in-time, бизнес-мағынасы, жаңғыртылуы, мониторинг және экономика. Күшті фичтер + қатаң іріктеу (filter/wrapper/embedded) және бірыңғай Feature Store тұрақты, түсінікті және арзан модельдер береді, олар Net Revenue жақсартады, фродты азайтады және RG қолдайды - мөлдір және комплаентті.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.