GH GambleHub

Feature Engineering va belgilarni tanlash

1) Vazifasi va prinsiplari

Maqsad: oflayn va onlayn o’rtasida kelishilgan barqaror, talqin etiladigan va tejamkor belgilarni yaratish.

Prinsiplar:
  • Point-in-time: fichlar kelajaksiz (anti-leakage) hal qilish vaqtida mavjud bo’lgan ma’lumotlardan hisoblab chiqariladi.
  • Domain-first: fichlar biznes-mexanikani aks ettiradi (depozitlar, sessiyalar, o’yin janrlari, RG/AML).
  • Reuse & Contracts: fichi - Feature Store’dagi versiyalar, egalar, formulalar va SLO.
  • Cost-aware: latency va hisoblash/saqlash narxini hisoblaymiz → faqat o’zini oqlashini materiallashtiramiz.
  • Observability: monitorim dreyf/barqarorlik/kalibrlash; online/offline ekvivalentlik testi.

2) iGaming uchun belgilar taksonomiyasi

RFM/xulq-atvor: recency/frequency/monetary (10m/1h/1d/7d/30d).
Sessiya: davomiyligi, tanaffuslar, qurilmalarni almashtirish/ASN, harakat tezligi.
Moliyaviy: depozitlar/xulosalar/chorjbeklar, to’lov usullari ulushlari, FX-normallashtirish.
O’yin: janr profillari, provayderlarning o’zgaruvchanligi, RTP-klasterlar, win-streak.
Marketing: kanallar/UTM, kampaniyalarga javoblar, saturation/cooldown.
RG/AML: limitlar, o’z-o’zini istisno qilish bayroqlari, velocity-patternlar, BIN/IP’dan qayta foydalanish.
Geo/vaqt: mahalliy taqvim/bayramlar, kamar soati, kecha/tun.
Grafik: user-card-device-ip aloqalari, markazliklar/komponentlar, frodning «halqalari».
NLP/matnlar: tiketlar/chatlarning mavzulari va tonalligi; asosiy shikoyatlar.
Operatsion: lag/provayderlarning xatolari, sessiyalarning barqarorligi (SRE-modellar uchun).


3) Deraza va agregatlar (point-in-time)

Namunaviy oynalar: 10m/1ch/24ch/7d/30d. Har bir oyna uchun - count/sum/mean/std/last/max/min, ratio va rate.

SQL-shablon (30d depozitlar, kelajaksiz):
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) Toifaviy kodlashlar

One-Hot/Hashing: kamdan-kam uchraydigan/yuqori darajadagi toifalar (o’yinlar, provayderlar) uchun.
Target Encoding (TE): k-fold/leave-one-out va time-aware tekislash (anti-leakage) bilan target bo’yicha o’rtacha.
WOE/IV (risk-skoring): IV va barqarorlik nazorati bilan monoton binalar.

TE (soxta hujjat, 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) Normallashtirish va skeyling

Min-maks/Robust/Z-score - mashq oynasi bo’yicha; parametrlarni artefaktlarda saqlaymiz.
Summalar/stavkalarning uzun qoldiqlari uchun log-o’zgartirishlar.
Box-Cox/Yeo-Johnson - simmetrizatsiya talab qilinganda.


6) Vaqtinchalik va mavsumiy fichlar

Kalendar: hafta kuni, soat, bozor bayrami (ref. calendar), pay-day.
Davriylik: sirpanuvchi o’rtacha/ekspon. tekislash (EMA), deltas (t − t-1).
Event-based: oxirgi depozit/yutuq/yo’qotish, «sovutish» vaqtidan boshlab.


7) Grafik belgilar (frod/AML)

user/card/device/ip. Qovurgʻalar: tranzaksiyalar/sessiyalar/birgalikdagi belgilar.
Fichlar: komponentlar hajmi, degree, betweenness, pagerank, triads, qayta paydo bo’lish.
Shablon: nightly batch grafik tuzadi → embeddingi/markazlashtirish → online kesh.


8) NLP-fichi (sapport/chatlar/revyu)

Asosiy: TF-IDF/NMF mavzular, sentiment, uzunlik, shikoyatlar chastotasi.
Ilg’or: embeddingi (Sentence-BERT) → derazadan tiketlar bo’yicha o’rtacha.
PII: siyosat bo’yicha qo’shimcha va post-niqoblash (email, PAN, telefonlar).


9) Geo/ASN va qurilmalar

IP → Geo/ASN: kesh qilish va yangilash; taymaut/keshsiz onlayn sinxron soʻrovlar qilmang.
Fich: ASN/DeviceID barqarorligi, smena chastotasi, loginlar orasidagi masofa.


10) Anti-Leakage va kelishish online/offline

Point-in-time join, oynalarda/yorliqlarda kelajakdagi voqealar yo’q.
Oflayn va onlayn uchun bitta transformatsiya kodi (library).
Ekvivalentlik testi: T namunasida fichning onlayn qiymatlarini oflayn (MAE/MAPE) bilan solishtiramiz.

YAML-speka fichi:
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) Belgilarni tanlash (feature selection)

11. 1 Filter

Oʻzgarish/korrelyatsiya: konstantalarni olib tashlaymiz,ρ>0. 95 dublikat.
Mutual Information (MI): chiziqli boʻlmagan aloqalarni tartibga solish.
IV/KS (xavf): AML/RG dagi binar targetlar uchun.

11. 2 Wrapper

RFE/Sequential FS: kichik toʻplamlarda/logistika regressiyasida.
Stability Selection: butstrep-sempling chog’ida barqarorlik.

11. 3 Embedded

L1/Lasso/ElasticNet: siyraklashtirish.
Daraxtlar/GBDT: importance/SHAP tanlash va biznes talqini uchun.
Group Lasso: guruh bo’yicha tanlash (bitta o’zgaruvchining bin-fich to’plamlari).

Pipline (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) Barqarorlik, dreyf va kalibrlash

Drift: PSI/KS fich va skor bo’yicha; chegaradan oshganda alerta.
Barqarorlik: «mo’rt» TE/WOE (kardinallik/siljish) ni kuzatamiz.
Kalibrlash: Platt/Isotonic; reliability hisobotlari.
Slice-tahlil: bozorlar/provayderlar/qurilmalar - metriklarning benchmarklari va xatolarning kutilayotgan qiymati.


13) Cost-injiniring va unumdorlik

Cost per Feature (CPF): CPU/IO/tarmoq/saqlash → model uchun byudjet.
Materiallashtirish: og’ir offline, engil online; TTL/issiq fich uchun kesh.
Olib tashlangan lookups: faqat async + kesh; p95 <20-30 ms on-layn chichiga.
Chargeback: jamoalar bo’yicha fich/inferens qiymatini hisobga olish.


14) Feature Store (kelishuv yadrosi)

Reyestr: nomi, formulasi, egasi, SLO, testlar, versiyalar.
Online/Offline sinxronlashtirish: bitta transformatsiya kodi, tenglik testi.
Logi/audit: formulani kim o’zgartirdi; versiyaning model metrikasiga ta’siri.


15) Misollar

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

16) Jarayonlar va RACI

R (Responsible): Data Eng (konveyerlar/Feature Store), Data Science (fich/tanlash/metrika dizayni).
A (Accountable): Head of Data / CDO.
C (Consulted): Compliance/DPO (PII, residency), Risk/AML/RG (qoidalar), SRE (SLO/qiymat), Security.
I (Informed): Mahsulot/Marketing/Operatsiyalar/Qo’llab-quvvatlash.


17) Yo’l xaritasi

MVP (3-5 hafta):

1. Point-in-time formulalari bilan top-50 fich (Payments/Gameplay) katalogi.

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

3. Bazaviy tanlash: konstantalar/korrelyatsiyalar → MI → L1/SHAP shortlist (60 fich gacha).

4. Dreyf fich va cost-dashbord monitoringi.

2-faza (5-10 hafta):
  • Time-aware validatsiyali TE/WOE, grafik va kalendar fichlari.
  • Slice-tahlil va fairness, ehtimollarni kalibrlash.
  • Og’ir oflayn, onlayn kesh, kvotalarni materiallashtirish.
3-faza (10-16 hafta):
  • Avtogeneratsiya hujjatlari fich, stability-selection v CI.
  • «Qimmat va foydasiz» sohalarni avto-deaktivatsiya qilish (CPF ↑, hissa ↓).
  • A/B fich to’plamlarini taqqoslash, expected-cost hisobotlari.

18) Sotishdan oldingi chek-varaq

  • Barcha fichlar spetsifikatsiyalarga ega (owner, formula, versiyalar, SLO).
  • Point-in-time va online/offline ekvivalentlik testlari o’tkazildi.
  • Tanlash amalga oshirildi: filter → embedded (SHAP/L1) → stability.
  • Drift va reliability monitoringi sozlangan; ostonalari va alertlari bor.
  • CPF/latency budjetga to’g "ri keladi; og’ir chichlar moddalashtirilgan.
  • PII-siyosatga rioya qilingan (CLS/RLS, tokenizatsiya, rezidentlik).
  • Hujjatlar va foydalanish namunalari katalogga qoʻshilgan.

19) Anti-patternlar va xavflar

Leykedj (kelgusi voqealar/promo oqibatlari).
Kelishilmagan online/offline formulalar.
Hashing/TE bo’lmagan yuqori-kardinal toifalardagi ortiqcha one-hot.
O’lchanadigan sifat o’sishisiz «qimmat» chichlar.
Tahlilning slice/fairness emasligi - yashirin tanazzullar.
TE/WOE time-aware kross-validatsiyasiz → qayta o’qitish.


20) Jami

Feature Engineering - bu boshqariladigan fan: point-in-time, biznes ma’nosi, takrorlanuvchanlik, monitoring va iqtisodiyot. Kuchli fichlar + qat’iy tanlov (filter/wrapper/embedded) va yagona Feature Store Net Revenue-ni yaxshilaydigan, frodni kamaytiradigan va RG-ni shaffof va qo’llab-quvvatlaydigan barqaror, talqin qilinadigan va arzon modellarni beradi.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.