GH GambleHub

Feature Engineering və əlamət seçimi

1) Təyinat və prinsiplər

Məqsəd: oflayn və onlayn arasında razılaşdırılmış davamlı, şərh edilə bilən və qənaətcil xüsusiyyətlər yaratmaq.

Prinsiplər:
  • Point-in-time: Fiches gələcək (anti-leakage) olmadan həll zamanı mövcud olan məlumatlardan hesablanır.
  • Domain-first: Fiçlər biznes mexanikasını əks etdirir (depozitlər, sessiyalar, oyun janrları, RG/AML).
  • Reuse & Contracts: Feature Store-da versiyalar, sahiblər, düsturlar və SLO.
  • Cost-aware: latency hesab və hesablama/saxlama dəyəri → yalnız geri qaytarıla bilər.
  • Observability: drift monitorinq/sabitlik/kalibrləmə; online/offline ekvivalent testi.

2) iGaming üçün əlamətlərin taksonomiyası

RFM/davranış: pəncərələrə görə recency/frequency/monetary (10m/1h/1d/7d/30d).
Sessiya: müddət, fasilələr, cihaz dəyişikliyi/ASN, hərəkət sürəti.
Maliyyə: depozitlər/nəticələr/çarjbeklər, ödəniş metodlarının payları, FX-normallaşma.
Oyun: janr profilləri, provayderlərin dəyişkənliyi, RTP-klasterlər, win-streak.
Marketinq: kanallar/UTM, kampaniya cavabları, saturation/cooldown.
RG/AML: limitlər, özünü istisna bayraqları, velocity nümunələri, BIN/IP təkrar istifadə.
Geo/vaxt: yerli təqvimlər/bayramlar, kəmər saatı, axşam/gecə.
Qrafik: user-card-device-ip əlaqələri, mərkəzlər/komponentlər, frod «halqaları».
NLP/mətnlər: tiketlərin/söhbətlərin mövzuları və tonallığı; əsas şikayətlər.
Əməliyyat: lag/provayder səhvləri, seansların sabitliyi (SRE modelləri üçün).


3) Pəncərələr və aqreqatlar (point-in-time)

Tipik pəncərələr: 10m/1h/24h/7d/30d. Hər pəncərə üçün - count/sum/mean/std/last/max/min, ratio və rate.

SQL şablon (30d depozitlər, gələcək yoxdur):
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) Kateqoriya kodlaşdırma

One-Hot/Hashing: nadir/yüksək-kardinal kateqoriyalar üçün (oyunlar, provayderlər).
Target Encoding (TE): k-fold/leave-one-out və time-aware hamarlama (anti-leakage) ilə orta target.
WOE/IV (risk-skor): IV nəzarət və sabitlik ilə monoton binlər.

TE (psevdokod, 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) Normallaşdırma və skeylinq

Min-max/Robust/Z-score - məşq pəncərəsi ilə; parametrləri artefaktlarda saxlayırıq.
Log-transformasiya üçün uzun quyruq məbləğləri/dərəcələri.
Box-Cox/Yeo-Johnson - simmetrizasiya tələb olunduqda.


6) Müvəqqəti və mövsümi fiqurlar

Təqvim: həftənin günü, saat, bazar bayramı (ref. calendar), pay-day.
Dövrilik: sürüşmə orta/ekspon. hamarlaşdırma (EMA), deltas (t − t-1).
Event-based: son depozit/uduş/uduzma, «soyutma».


7) Qrafik əlamətlər (frod/AML)

Zirvələri: user/card/device/ip. Qabırğalar: əməliyyatlar/sessiyalar/ortaq əlamətlər.
Fiçlər: komponentlərin ölçüsü, degree, betweenness, pagerank, triads, yenidən görünüş.
Şablon: nightly batch qraf inşa → embeddingi/mərkəzləşdirilməsi → online cache.


8) NLP Fiches (sapport/chat/review)

Əsas: TF-IDF/NMF mövzular, sentiment, uzunluq, şikayət tezliyi.
Qabaqcıl: embeddinq (Sentence-BERT) → pəncərə arxasında tiketlərin orta hesablanması.
PII: Siyasətçilər üçün əlavə və post-maskalama (email, PAN, telefonlar).


9) Geo/ASN və cihazlar

IP → Geo/ASN: cache və yeniləmə; vaxt/cache olmadan onlayn sinxron sorğular etməyin.
Fiçlər: ASN/DeviceID sabitliyi, növbə tezliyi, loginlər arasındakı məsafə.


10) Anti-Leakage və online/offline koordinasiya

Point-in-time join, pəncərələrdə/etiketlərdə gələcək hadisələr yoxdur.
offline və online üçün bir transformasiya kodu (library).
Ekvivalentlik testi: T nümunəsində onlayn fich dəyərlərini oflayn (MAE/MAPE) ilə müqayisə edirik.

YAML-SPEKA FICI:
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) Xüsusiyyətlərin seçilməsi (feature selection)

11. 1 Filter

Variasiya/korrelyasiya: sabitləri silmək,ρ>0. 95 dublikatları.
Mutual Information (MI): qeyri-xətti əlaqələrin sıralanması.
IV/KS (risk): AML/RG-də ikili hədəflər üçün.

11. 2 Wrapper

RFE/Sequential FS: kiçik dəstlərdə/logistika reqressiyasında.
Stability Selection: butstrep-sampling zamanı sabitlik.

11. 3 Embedded

L1/Lasso/ElasticNet: seyreltmə.
Ağac/GBDT: importance/SHAP seçimi və iş şərhi üçün.
Qrup Lasso: Qrup seçimi (bir dəyişənin bin-fiç dəstləri).

Pipeline (eskiz):
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) Dayanıqlılıq, sürüklənmə və kalibrləmə

Drift: PSI/KS fit və skor; həddi aşdıqda alertlər.
Sabitlik: «kövrək» TE/WOE (kardinallıq/yerdəyişmə).
Kalibrləmə: Platt/Isotonic; reliability hesabatları.
Slice-analizi: bazarlar/provayderlər/cihazlar - metrik benchmark və gözlənilən səhv dəyəri.


13) Cost mühəndislik və performans

Cost per Feature (CPF): CPU/IO/şəbəkə/saxlama → model üçün büdcə.
Materiallaşdırma: ağır offline, yüngül online; TTL/cache üçün isti fich.
Uzaqdan lookups: yalnız async + cache; p95 <20-30 ms online fich.
Chargeback: komandalar üzrə fich/inferens dəyərinin uçotu.


14) Feature Store (koordinasiya nüvəsi)

Reyestr: ad, formula, sahibi, SLO, testlər, versiyalar.
Online/Offline sinxronizasiya: bir transformasiya kodu, bərabərlik testi.
Log/audit: formulu kim dəyişdi; versiyasının modelin metrikasına təsiri.


15) Nümunələr

ClickHouse: dəqiqəlik bahis aqreqatları:
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-ideya):
sql
-- вычислить корреляции и удалить пары с     ρ    >0.95, сохранив более «дешевую» фичу
WOE binning (eskiz):
python bins = monotonic_binning(x, y, max_bins=10)
woe = compute_woe(bins)
iv = compute_iv(bins)

16) Proseslər və RACI

R (Responsible): Data Eng (konveyerlər/Feature Store), Data Science (dizayn fich/seçmə/metrika).
A (Accountable): Head of Data / CDO.
C (Consulted): Compliance/DPO (PII, residency), Risk/AML/RG (qaydalar), SRE (SLO/dəyəri), Security.
I (Informed): Məhsul/Marketinq/Əməliyyatlar/Dəstək.


17) Yol xəritəsi

MVP (3-5 həftə):

1. Point-in-time düsturları ilə Top 50 fich (Payments/Gameplay) kataloqu.

2. Feature Store v1 (online/offline) + ekvivalentlik testi.

3. Əsas seçim: sabitlər/korrelyasiyalar → MI → L1/SHAP shortlist (60-a qədər).

4. Drift monitorinq fich və cost-dashboard.

Faza 2 (5-10 həftə):
  • Time-aware validation ilə TE/WOE, qrafik və təqvim fiçləri.
  • Slice-analizi və fairness, ehtimal kalibrlənməsi.
  • Materializasiya ağır oflayn, online cache, kvota.
Faza 3 (10-16 həftə):
  • Avtogenerasiya sənədləşmə fich, stability-selection CI.
  • «Bahalı və faydasız» fiqurların avtomatik deaktivasiyası (CPF ↑, töhfə ↓).
  • A/B phich dəsti müqayisə, expected-cost hesabatları.

18) Satış öncəsi yoxlama siyahısı

  • Bütün xüsusiyyətlər var (owner, formula, versiyası, SLO).
  • point-in-time və online/offline ekvivalentlik testləri keçdi.
  • Seçim tamamlandı: filter → embedded (SHAP/L1) → stability.
  • Drift və reliability monitorinqi konfiqurasiya; eşik və alert var.
  • CPF/latency büdcəyə uyğun; Ağır fitlər materiallaşdırılır.
  • PII siyasətlərinə riayət olunur (CLS/RLS, tokenizasiya, rezidentlik).
  • Sənədləşmə və istifadə nümunələri kataloqa əlavə edilmişdir.

19) Anti-nümunələr və risklər

Lakedge (gələcək hadisələr/promo nəticələri).
Razılaşdırılmamış online/offline düsturlar.
Hashing/TE olmadan yüksək kardinal kateqoriyalardan həddindən artıq one-hot.
Ölçülə bilən keyfiyyət artımı olmadan «əziz» fiçalar.
Slice/fairness analizinin olmaması gizli deqradasiyalardır.
Time-aware cross-validation olmadan TE/WOE → yenidən təlim.


20) Yekun

Feature Engineering idarə olunan bir intizamdır: nöqtə-zamanlı, biznes mənası, təkrarlanabilirlik, monitorinq və iqtisadiyyat. Güclü ficks + ciddi seçimi (filter/wrapper/embedded) və vahid Feature Store Net Revenue yaxşılaşdırır, frod azaldır və RG dəstəkləyir davamlı, şərh və ucuz modellər verir - şəffaf və komplayent.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.