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.
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 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
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).
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.
- 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.