GH GambleHub

Хусусияти муҳандисӣ ва интихоби хусусиятҳо

1) Мақсад ва принсипҳо

Ҳадаф: сохтани хусусиятҳои устувор, тафсиршаванда ва иқтисодии байни офлайн ва онлайн мувофиқашуда.

Принсипҳо:
  • Нуқтаи вақт: хусусиятҳо аз маълумоте, ки дар вақти ҳалли онҳо мавҷуданд, бидуни оянда ҳисоб карда мешаванд (зидди ихроҷ).
  • Домен-аввал: хусусиятҳо механикаи тиҷоратро инъикос мекунанд (амонатҳо, сессияҳо, жанрҳои бозӣ, RG/AML).
  • Истифодаи такрорӣ ва шартномаҳо: Версияҳои мағозаи хусусият, соҳибон, формулаҳо ва SLO.
  • Бо дарки хароҷот: мо таъхирнопазирӣ ва арзиши ҳисоббарорӣ/нигоҳдорӣ § -ро танҳо баргардонидан ба назар мегирем.
  • Мушоҳида: монитор дрифт/устуворӣ/калибрченкунӣ; санҷиши эквиваленти онлайн/офлайнӣ.

2) Таксономияи хос барои IGaming

RFM/рафтор: сабукӣ/басомад/пул аз ҷониби тирезаҳо (10m/1h/1d/7d/30d).
Сессия: давомнокӣ, таваққуф, тағирёбии дастгоҳ/ASN, суръати амал.
Молиявӣ: пасандозҳо/бозхондҳо/пардохтҳо, саҳмияҳои усулҳои пардохт, нормализатсияи FX.
Бозӣ: профилҳои жанрӣ, ноустувории провайдер, кластерҳои RTP, win-streak.
Маркетинг: каналҳо/UTM, посухҳои маърака, пуррагӣ/cooldown.
RG/AML: маҳдудиятҳо, парчамҳои худидоракунӣ, намунаҳои суръат, истифодаи такрории BIN/IP.
Geo/вақт: тақвимҳои маҳаллӣ/идҳо, соати камар, шом/шаб.
Графика: истинодҳои корбар-корт-дастгоҳ-ip, марказӣ/ҷузъҳо, ҳалқаҳои қаллобӣ.
NLP/матнҳо: мавзӯъҳо ва оҳанги чиптаҳо/чатҳо; шикоятҳои асосӣ.
Амалиёт: хатогиҳои ақиб/провайдер, устувории сессия (барои моделҳои SRE).


3) Тирезаҳо ва агрегатҳо (нуқтаи вақт)

Тирезаҳои маъмулӣ: 10m/1h/24h/7d/30d. Барои ҳар як тиреза - ҳисоб/сум/миёна/std/last/max/min, таносуб ва меъёри.

Қолаби SQL (пасандозҳои 30d, оянда нестанд):
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) Рамзгузории категориявӣ

Як-Hot/Hashing: барои категорияҳои нодир/кардиналӣ (бозиҳо, провайдерҳо).
Рамзгузории мақсаднок (TE): Нишондиҳандаҳои миёнаи мақсаднок бо k-fold/left-one-out ва зидди ихроҷи вақт.
WOE/IV (баҳодиҳии хатар): контейнерҳои якхела бо назорати IV ва устуворӣ.

TE (псевдокод, вақт огоҳ):
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) Нормализатсия ва миқёс

Min-max/Robust/Z-хол - бо равзанаи омӯзишӣ; параметрҳоро дар артефактҳо захира кунед.
Табдили журнал барои думҳои дароз/гарав.
Box-Cox/Yeo-Johnson - ҳангоми симметризатсия лозим аст.


6) Хусусиятҳои муваққатӣ ва мавсимӣ

Тақвим: рӯзи ҳафта, соат, ҷашни бозор (тақвими тақвим), рӯзи пардохт.
Басомад: ҳаракат ба ҳисоби миёна/expon. ҳамворкунӣ (EMA), дельтҳо (t − t-1).
Дар асоси ҳодиса: вақт аз пасандози охирин/бурд/зиён, "хунуккунӣ".


7) Хусусиятҳои графикӣ (қаллобӣ/AML)

Қуллаҳо: корбар/корт/дастгоҳ/ip. Кунҷҳо: транзаксияҳо/сессияҳо/хусусиятҳои муштарак.
Хусусият: андозаи компонент, дараҷа, ҳамбастагӣ, паганк, сегонаҳо, пайдоиши дубора.
Намуна: партияи шабона графикро § ҷобаҷогузорӣ/мутамарказӣ → кэши онлайн месозад.


8) Хусусиятҳои NLP (дастгирӣ/чатҳо/шарҳҳо)

Асосӣ: Мавзӯъҳои TF-IDF/NMF, ҳиссиёт, дарозӣ, басомади шикоятҳо.
Пешрафта: ҷобаҷогузорӣ (Senture-BERT) → ба ҳисоби миёна чиптаҳо дар як тиреза.
PII: пеш ва пас аз ниқоб (почтаи электронӣ, PAN, телефонҳо) аз рӯи сиёсат.


9) Geo/ASN ва дастгоҳҳо

IP → Geo/ASN: мо кэш ва навсозӣ мекунем; дархостҳои синхронизатсияро дар интернет бидуни танаффус/кэш иҷро накунед.
Хусусиятҳо: устувории ASN/дастгоҳ, басомади гузариш, масофа байни воридшавӣ.


10) Мусолиҳаи зидди ихроҷ ва онлайн/офлайнӣ

Ҳамроҳ кардани нуқта дар вақт, ҳеҷ гуна рӯйдодҳои оянда дар тирезаҳо/тамғакоғазҳо.
Як рамзи табдилдиҳӣ (китобхона) барои офлайн ва онлайн.
Санҷиши эквивалентӣ: аз рӯи намуна 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) Интихоби хусусият

11. 1 Филтр

Тағирот/таносуб: хориҷ кардани доимӣ,ρ>0. 95 такрорӣ.
Иттилооти мутақобила (MI) - Муносибатҳои ғайрихаттӣ.
IV/KS (хатар): барои ҳадафҳои бинарӣ дар AML/RG.

11. 2 Печондан

RFE/Sequential FS: дар маҷмӯаҳои хурд/регрессияи логистикӣ.
Интихоби устуворӣ: устуворӣ дар интихоби интихоб.

11. 3 Дарунсохт

L1/Lasso/ElasticNet: камёфт.
Дарахтҳо/GBDT: аҳамият/SHAP барои интихоб ва тафсири тиҷорат.
Гурӯҳи Лассо: интихоби гурӯҳ (маҷмӯи хусусиятҳои як тағирёбанда).

Қубур (эскиз):
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) Устуворӣ, кашиш ва калибрченкунӣ

Дрифт: PSI/KS барои хусусиятҳо ва суръат; ҳушдорҳо ҳангоми зиёд шудани ҳудудҳо.
Устуворӣ: барои "нозук" TE/WOE (кардиналӣ/бастҳо) тамошо кунед.
Калибрченкунӣ: Платт/Изотоникӣ; ҳисоботҳои эътимоднокӣ.
Таҳлили бурида: бозорҳо/провайдерҳо/дастгоҳҳо - ченакҳо ва арзиши интизорравандаи хатогиҳо.


13) Муҳандисии хароҷот ва нишондиҳандаҳо

Арзиш барои як хусусият (CPF): CPU/IO/шабака/нигаҳдорӣ § буҷети моделӣ.
Материализатсия: офлайнии вазнин, онлайн сабук; TTL/кэш барои хусусиятҳои гарм.
Ҷустуҷӯи дурдаст: танҳо async + кэш; p95 <20-30 мс оид ба хусусияти онлайн.
Пардохт: баҳисобгирии арзиши хусусият/хулоса аз рӯи фармон.


14) Дӯкони хусусият (ядрои пайдарҳамӣ)

Феҳрист: ном, формула, соҳиб, SLO, санҷишҳо, версияҳо.
Синхронизатсияи онлайн/офлайнӣ: як рамзи тағирот, санҷиши баробарӣ.
Гузоришҳо/аудитҳо: кӣ формуларо иваз кард; таъсири версия ба ченакҳои моделӣ.


15) Намунаҳо

Ангушт занед: агрегатҳои букмекерӣ:
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;
Тарки анти-коррелятсия (идеяи 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 (Масъул): Data Eng (қубурҳо/Дӯкони хусусият), Илми маълумот (хусусияти тарроҳӣ/интихоб/ченакҳо).
A (Ҳисоботдиҳанда): Роҳбари маълумот/CDO.
C (Машварат): Мутобиқат/DPO (PII, истиқомат), Хавф/AML/RG (сиёсат), SRE (SLO/арзиш), Амният.
I (Маълумот): Маҳсулот/Маркетинг/Амалиёт/Дастгирӣ.


17) Харитаи роҳ

MVP (3-5 ҳафта):

1. Феҳристи 50 хусусияти боло (Пардохтҳо/Gameplay) бо формулаҳои нуқтаи вақт.

2. Дӯкони хусусият v1 (онлайн/офлайн) + санҷиши эквивалентӣ.

3. Интихоби асосӣ: константҳо/коррелятсияҳо → MI → L1/SHAP рӯйхати мухтасар (то 60 хусусият).

4. Мониторинги хусусиятҳои дрифт ва панели хароҷот.

Марҳилаи 2 (5-10 ҳафта):
  • TE/WOE бо тасдиқи вақт, хусусиятҳои графикӣ ва тақвимӣ.
  • Таҳлили бурида ва адолат, калибрченкунии эҳтимолият.
  • Материализатсияи хусусиятҳои вазнини офлайнӣ, кэши онлайн, квотаҳо.
Марҳилаи 3 (10-16 ҳафта):
  • Тавлиди худкори ҳуҷҷатгузорӣ, интихоби устуворӣ дар CI.
  • Худтанзимкунии хусусиятҳои "гарон ва бефоида" (CPF *, vklad↓).
  • Муқоисаи A/B маҷмӯи хусусиятҳо, ҳисоботҳо дар бораи хароҷот.

18) Рӯйхати санҷиши пеш аз фурӯш

  • Ҳама хусусиятҳо мушаххасот доранд (соҳиб, формула, версияҳо, SLO).
  • Санҷишҳои эквиваленти вақт ва онлайн/офлайнӣ гузашт.
  • Филтр → дохилшуда (SHAP/L1) → устуворӣ ба анҷом расид.
  • Мониторинги дрифт ва эътимоднокӣ танзим карда шудааст; ҳудудҳо ва огоҳиҳо мебошанд.
  • CPF/ниҳонӣ ба буҷа мувофиқат мекунад; хусусиятҳои вазнин ба амал омаданд.
  • Сиёсати PII мувофиқат карданд (CLS/RLS, токенизатсия, истиқомат).
  • Ҳуҷҷатҳо ва ҳолатҳои истифода ба каталог илова карда шуданд.

19) Анти-намунаҳо ва хатарҳо

Лейк (рӯйдодҳои оянда/аксияи баъдӣ).
Формулаҳои номувофиқи онлайн/офлайнӣ.
Аз ҳад зиёд гарм аз категорияҳои баланд-кардиналӣ бидуни hashing/TE.
Хусусиятҳои "гарон" бидуни афзоиши андозагирии сифат.
Набудани таҳлили бурида/адолат - таназзули пинҳон.
TE/WOE бидуни санҷиши байнисоҳавӣ ва бозомӯзӣ.


20) Сатри поён

Муҳандисии хусусият як фанни идорашаванда аст: нуқтаи вақт, ҳисси бизнес, такрористеҳсолкунӣ, мониторинг ва иқтисодиёт. Хусусиятҳои қавӣ + интихоби қатъӣ (филтр/парпеч/дарунсохт) ва як мағозаи хусусият моделҳои устувор, тафсиршаванда ва арзон медиҳанд, ки даромади холисро беҳтар мекунанд, қаллобӣ ва дастгирии RG-ро шаффоф ва мувофиқ мекунанд.

Contact

Тамос гиред

Барои саволҳо ё дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Оғози интегратсия

Email — муҳим аст. Telegram ё WhatsApp — ихтиёрӣ.

Номи шумо ихтиёрӣ
Email ихтиёрӣ
Мавзӯъ ихтиёрӣ
Паём ихтиёрӣ
Telegram ихтиёрӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиёрӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.