Feature Engineering და ნიშნების შერჩევა
1) დანიშვნა და პრინციპები
მიზანი: შეიმუშაოს სტაბილური, ინტერპრეტირებული და ეკონომიური მახასიათებლები, რომლებიც შეთანხმებულია ოფლაინსა და ინტერნეტს შორის.
პრინციპები:- Point-in-time: ფიჩები გამოითვლება გადაწყვეტილების დროს ხელმისაწვდომი მონაცემებიდან, მომავლის გარეშე (anti-leakage).
- დომენის პირველი: ფიჩები ასახავს ბიზნეს მექანიკას (ანაბრები, სესიები, თამაშის ჟანრები, RG/AML).
- Reuse & Contracts: ფიჩები - ვერსიები, მფლობელები, ფორმულები და SLO Feature Store- ში.
- Cost-aware: ჩვენ განვიხილავთ ლატენციას და გაანგარიშების/შენახვის ღირებულებას მხოლოდ ანაზღაურების მატერიალიზაციას.
- Observability: დააკვირდით დრიფტს/სტაბილურობას/კალიბრაციას; ონლაინ/ოფისის ეკვივალენტობის ტესტი.
2) iGaming- ის ნიშნების ტაქსონომია
RFM/ქცევითი: ჩანაწერები/frequency/monetary ფანჯრებზე (10m/1h/1d/7d/30d).
სესია: ხანგრძლივობა, პაუზები, მოწყობილობების შეცვლა/ASN, მოქმედების სიჩქარე.
ფინანსური: ანაბრები/დასკვნები/ჩარჟბეკი, გადახდის მეთოდების წილები, FX ნორმალიზაცია.
თამაშის: ჟანრის პროფილები, პროვაიდერების ცვალებადობა, RTP მტევანი, win-streak.
მარკეტინგული: არხები/UTM, პასუხები კამპანიაზე, სატურნირო/cooldown.
RG/AML: limites, თვითგამორკვევის დროშები, velocity ნიმუშები, BIN/IP ხელახალი გამოყენება.
გეო/დრო: ადგილობრივი კალენდარი/არდადეგები, ქამრების საათი, საღამო/ღამე.
გრაფიკული: კავშირი მომხმარებლის ბარათის მოწყობილობებთან, ცენტრალურობასთან/კომპონენტებთან, ფროიდის „რგოლებთან“.
NLP/ტექსტები: ticets/chates თემები და ტონალობა; ძირითადი საჩივრები.
ოპერაციული: პროვაიდერების lag/შეცდომები, სესიების სტაბილურობა (SRE მოდელებისთვის).
3) ფანჯრები და შეკრებები (წერტილოვანი დრო)
ტიპიური ფანჯრები: 10 მ/1.ch/24h/7d/30d. თითოეული ფანჯრისთვის - count/sum/mean/std/last/max/min, ratio და rate.
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) კატეგორიული კოდირება
One-Hot/Hashing: იშვიათი/მაღალი კარდინალური კატეგორიებისთვის (თამაშები, პროვაიდერები).
Target Encoding (TE): საშუალო ტარგეტი k-fold/leave-one-out და time-aware შერწყმით (anti-leakage).
WOE/IV (რისკის სკორინგი): ერთფეროვანი ბარები IV და სტაბილურობის კონტროლით.
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-score - სავარჯიშო ფანჯარაში; პარამეტრების შენახვა არტეფაქტებში.
ლოგიკური გარდაქმნები თანხების/განაკვეთების გრძელი კუდებისთვის.
Box-Cox/Yeo-Johnson - როდესაც საჭიროა სიმეტრიზაცია.
6) დროებითი და სეზონური ფიჩები
კალენდარი: კვირის დღე, საათი, ბაზრის ფესტივალი (ref. calendar), pay-day.
სიხშირე: მოცურების საშუალო/ექსპონი. გაბრტყელება (EMA), deltas (t − t-1).
ღონისძიება: დრო ბოლო დეპოზიტიდან/მოგება/წაგება, „გაგრილება“.
7) გრაფიკული ნიშნები (frod/AML)
მწვერვალები: user/card/Device/ip. ნეკნები: გარიგებები/სესიები/ერთობლივი ნიშნები.
ფიჩი: კომპონენტების ზომა, degree, betweenness, pagerank, triads, ხელახლა გამოჩენა.
შაბლონი: nightly batch აშენებს გრაფიკს - ემბედინგს/ცენტრს - ონლაინ ქეში.
8) NLP ფიჩები (sapport/chati/revie)
ძირითადი: TF-IDF/NMF თემები, sentiment, სიგრძე, საჩივრების სიხშირე.
მოწინავე: Embedings (Sentence-BERT) - საშუალო ტიკეტი ფანჯრის უკან.
PII: do- და პოსტ-ნიღბები (email, PAN, ტელეფონები) პოლიტიკოსებისთვის.
9) გეო/ASN და მოწყობილობები
IP - Geo/ASN: ქეშირი და განახლება; არ გააკეთოთ სინქრონული მოთხოვნა ინტერნეტით, ტაიმუტის/ქეშის გარეშე.
ფიჩი: ASN/მოწყობილობის სტაბილურობა, ცვლის სიხშირე, ლოგინებს შორის მანძილი.
10) Anti-Leakage და online/offline კოორდინაცია
Point in time join, არ არის მომავალი მოვლენები ფანჯრებში/ეტიკეტებში.
ხაზგარეშე და ონლაინ ტრანსფორმაციების ერთი კოდი.
ეკვივალენტობის ტესტი: ნიმუშზე T, ჩვენ შევადარებთ ონლაინ სახის მნიშვნელობებს ოფლაინთან (MAE/MAPE).
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 Filter
11. 2 Wrapper
RFE/Sequential FS: მცირე პაკეტებზე/ლოჯისტიკურ რეგრესიაზე.
Stability Selection: bootstrap sampling- ის წინააღმდეგობა.
11. 3 Embedded
L1/Lasso/ElasticNet: ჭრა.
ხეები/GBDT: importance/SHAP შერჩევისა და ბიზნეს ინტერპრეტაციისთვის.
ჯგუფი 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 fiches და square; ალერტები, როდესაც ბარიერები აღემატება.
სტაბილურობა: ჩვენ ვაკვირდებით „მყიფე“ TE/WOE (კარდინალი/ძვრები).
კალიბრაცია: Platt/Isotonic; მოხსენებები reliability.
Slice ანალიზი: ბაზრები/პროვაიდერები/მოწყობილობები - მეტრიკის ბანკნოტები და შეცდომების მოსალოდნელი ღირებულება.
13) Cost ინჟინერია და პროდუქტიულობა
Cost per Feature (CPF): CPU/IO/ქსელი/შენახვა/ბიუჯეტი მოდელისთვის.
მატერიალიზაცია: მძიმე ოფლაინი, მსუბუქი ონლაინ; TTL/ქეში ცხელი შუქისთვის.
წაშლილი lookups: მხოლოდ async + ქეში; p95 <20-30 ms ფიჩხებზე ინტერნეტით.
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, residence), Risk/AML/RG (წესები), SRE (SLO/ღირებულება), უსაფრთხოება.
I (ინფორმირებული): პროდუქტი/მარკეტინგი/ოპერაციები/მხარდაჭერა.
17) საგზაო რუკა
MVP (3-5 კვირა):1. ტოპ 50 ფიგურის კატალოგი (Payments/Gameplay) წერტილოვანი ფორმულებით.
2. Feature Store v1 (ონლაინ/ოფლაინ) + ეკვივალენტობის ტესტი.
3. ძირითადი შერჩევა: მუდმივი/კორელაცია MI/L1/SHAP shortlist (60-მდე fich).
4. დრიფტის და cost-dashboard- ის მონიტორინგი.
ეტაპი 2 (5-10 კვირა):- TE/WOE დროის მონიტორინგით, გრაფიკული და კალენდარული ფიჩებით.
- Slice ანალიზი და fairness, ალბათობის კალიბრაცია.
- მძიმე ოფლაინ ფიჩის მატერიალიზაცია, ონლაინ ქეში, კვოტები.
- Fich- ის დოკუმენტაციის ავტომატური წარმოება, stability შერჩევა CI- ში.
- „ძვირადღირებული და უსარგებლო“ ფიგურების ავტომატური ექსპლუატაცია (CPF, წვლილი).
- A/B შედარება ficks კომპლექტების, expected-cost ანგარიშების შედარება.
18) ჩეკის სია გაყიდვამდე
- ყველა ფიჩს აქვს სპეციფიკაცია (owner, ფორმულა, ვერსია, SLO).
- გაიარა წერტილის დროის ტესტები და ონლაინ/ოფლაინის ეკვივალენტობა.
- შერჩევა დასრულებულია: ფილმი - embedded (SHAP/L1) - stability.
- დრიფტისა და რელიეფის მონიტორინგი მორგებულია; არსებობს ბარიერები და ალერტები.
- CPF/ლიტერატურა ჯდება ბიუჯეტში; მატერიალიზებულია მძიმე ფიჩები.
- PII პოლიტიკა არის დაცული (CLS/RLS, ტოკენიზაცია, რეზიდენცია).
- დოკუმენტაცია და გამოყენების მაგალითები დაემატა კატალოგს.
19) ანტი შაბლონები და რისკები
ლეიკეჯი (მომავალი მოვლენები/პრომო შედეგები).
არაკოორდინირებული ონლაინ/ოფლაინ ფორმულები.
ხელახლა გამოცემული ერთი ცხელი მაღალი კარდინალური კატეგორიებიდან hashing/TE გარეშე.
„ძვირფასო“ ჩიჩები ხარისხის გაზომვის გარეშე.
slice/fairness ანალიზის არარსებობა ფარული დეგრადაციაა.
TE/WOE დროის გადამზადების გარეშე - გადამზადება.
20) შედეგი
Feature Engineering არის კონტროლირებადი დისციპლინა: წერტილის დრო, ბიზნეს მნიშვნელობა, რეპროდუქცია, მონიტორინგი და ეკონომიკა. ძლიერი ფიჩები + მკაცრი შერჩევა (filter/wrapper/embedded) და ერთიანი Feature Store იძლევა სტაბილურ, ინტერპრეტაციულ და იაფი მოდელებს, რომლებიც აუმჯობესებენ Net Revenue- ს, ამცირებენ ფროდს და მხარს უჭერენ RG- ს - გამჭვირვალე და კომპოზიციურად.