Özellik Mühendisliği ve Özellik Seçimi
1) Amaç ve prensipler
Amaç: Çevrimdışı ve çevrimiçi arasında anlaşılan istikrarlı, yorumlanabilir ve ekonomik özellikler oluşturmak.
İlkeler:- Zaman içinde: Özellikler, çözüm sırasında mevcut olan verilerden, gelecekteki (sızıntı önleyici) olmadan hesaplanır.
- Domain-first: özellikleri iş mekaniği (mevduat, oturumlar, oyun türleri, RG/AML) yansıtır.
- Yeniden Kullanım ve Sözleşmeler: Özellik Deposu sürümleri, sahipleri, formülleri ve SLO'ları.
- Maliyet bilincinde: Gecikme ve hesaplama/depolama maliyetini göz önünde bulunduruyoruz - sadece geri ödeme gerçekleştiriyoruz.
- Gözlenebilirlik: kayma/stabilite/kalibrasyon izlemek; Çevrimiçi/çevrimdışı eşdeğerlik testi.
2) iGaming için karakteristik taksonomi
RFM/davranışsal: windows tarafından yenilik/frekans/parasal (10m/1h/1d/7d/30d).
Oturum: süreler, duraklamalar, cihaz değişiklikleri/ASN, eylem hızı.
Finansal: para yatırma/çekme/ters ibraz, ödeme yöntemlerinin payları, FX normalizasyonu.
Oyun: tür profilleri, sağlayıcı oynaklığı, RTP kümeleri, kazanma çizgisi.
Pazarlama: kanallar/UTM, kampanya yanıtları, doygunluk/bekleme süresi.
RG/AML: limitler, kendini dışlayan bayraklar, hız desenleri, BIN/IP yeniden kullanımı.
Geo/saat: yerel takvimler/tatiller, kemer saati, akşam/gece.
Grafik: kullanıcı kartı-cihaz-ip bağlantıları, merkeziyet/bileşenler, dolandırıcılık halkaları.
NLP/metinler: temalar ve bilet/sohbet tonu; Önemli şikayetler.
Operasyonel: Gecikme/sağlayıcı hataları, oturum kararlılığı (SRE modelleri için).
3) Windows ve kümeler (zaman içinde nokta)
Tipik pencereler: 10m/1h/24h/7d/30d. Her pencere için - count/sum/mean/std/last/max/min, ratio and rate.
SQL şablonu (30d yatırma, gelecek yok):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) Kategorik kodlamalar
One-Hot/Hashing: Nadir/yüksek kardinal kategoriler için (oyunlar, sağlayıcılar).
Hedef Kodlama (TE): K-fold/leave-one-out ve zamana duyarlı anti-sızıntı ile hedef ortalamaları.
WOE/IV (risk puanlama): IV kontrol ve stabiliteye sahip monotonik kutular.
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) Normalleştirme ve ölçeklendirme
Min-max/Sağlam/Z-skoru - eğitim penceresi ile; Artifaktlardaki parametreleri kaydet.
Uzun toplam/bahis kuyrukları için günlük dönüşümleri.
Box-Cox/Yeo-Johnson - simetrizasyon gerektiğinde.
6) Geçici ve mevsimsel özellikler
Takvim: Haftanın günü, saat, pazar tatili (ref. takvim), ödeme günü.
Frekans: hareketli ortalamalar/expon. Yumuşatma (EMA), deltalar (t − t-1).
Olay tabanlı: son depozito/kazanç/kayıptan bu yana geçen süre, "soğutma".
7) Grafik özellikleri (dolandırıcılık/AML)
Köşeler: kullanıcı/kart/cihaz/ip. Kenarlar: işlemler/oturumlar/ortak özellikler.
Özellik: bileşen boyutu, derecesi, betweeness, pagerank, triads, yeniden görünme.
Desen: gece toplu bir grafik oluşturur - gömme/merkeziyet - çevrimiçi önbellek.
8) NLP özellikleri (destek/sohbetler/yorumlar)
Temel: TF-IDF/NMF konuları, duyarlılık, uzunluk, şikayetlerin sıklığı.
Gelişmiş: gömme (Cümle-BERT) - pencere başına biletlerin ortalaması.
PII: maskeleme öncesi ve sonrası (e-posta, PAN, telefonlar) politikaya göre.
9) Geo/ASN ve cihazlar
IP - Geo/ASN: önbelleğe alıyoruz ve güncelliyoruz; Zaman aşımı/önbellek olmadan çevrimiçi olarak senkronize istekte bulunmayın.
Özellikler: ASN/DeviceID kararlılığı, kaydırma frekansı, girişler arasındaki mesafe.
10) Anti-Kaçak ve çevrimiçi/çevrimdışı uzlaşma
Zaman içinde katılma, pencerelerde/etiketlerde gelecekteki olaylar yok.
Çevrimdışı ve çevrimiçi için bir dönüşüm kodu (kütüphane).
Eşdeğerlik testi: Örnek T'de, özelliğin çevrimiçi değerlerini çevrimdışı (MAE/MAPE) ile karşılaştırırız.
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) Özellik seçimi
11. 1 Filtre
11. 2 Sarıcı
RFE/Sıralı FS: küçük setlerde/lojistik regresyonda.
Kararlılık Seçimi: bootstrap örneklemesinde kararlılık.
11. 3 Gömülü
L1/Lasso/ElasticNet: seyreltme.
Ağaçlar/GBDT: seçim ve iş yorumlama için önem/SHAP.
Grup Kementi: grup seçimi (bir değişkenin bin özelliklerinin kümeleri).
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) Kararlılık, sürüklenme ve kalibrasyon
Sürüklenme: Özellikler ve hız için PSI/KS; eşikler aşıldığında uyarı verir.
Kararlılık: "Kırılgan" TE/WOE'yi (kardinalite/vardiya) izleyin.
Kalibrasyon: Platt/İzotonik; Güvenilirlik raporları.
Dilim analizi: pazarlar/sağlayıcılar/cihazlar - metrikler ve beklenen hata maliyeti.
13) Maliyet mühendisliği ve performans
Özellik Başına Maliyet (CPF): CPU/IO/ağ/depolama - model bütçesi.
Materyalizasyon: ağır çevrimdışı, hafif çevrimiçi; Sıcak özellikler için TTL/önbellek.
Uzaktan arama: yalnızca async + cache; P95 <20-30 ms çevrimiçi özellikte.
Ters ibraz: komutla özellik/çıkarım maliyetini hesaplar.
14) Özellik Deposu (tutarlılık çekirdeği)
Kayıt defteri: isim, formül, sahip, SLO, testler, sürümler.
Çevrimiçi/Çevrimdışı senkronizasyon: bir dönüşüm kodu, eşitlik testi.
Günlükler/denetimler: formülü değiştiren; Sürümün model metrikleri üzerindeki etkisi.
15) Örnekler
ClickHouse: dakika bahis toplamları: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-korelasyon düşüşü (SQL fikri):
sql
-- вычислить корреляции и удалить пары с ρ >0.95, сохранив более «дешевую» фичу
WOE binning (taslak):
python bins = monotonic_binning(x, y, max_bins=10)
woe = compute_woe(bins)
iv = compute_iv(bins)
16) Süreçler ve RACI
R (Sorumlu): Veri Eng (boru hatları/Özellik Deposu), Veri Bilimi (tasarım özelliği/seçim/metrikler).
A (Sorumlu): Veri/CDO Başkanı.
C (Danışmanlık): Uyumluluk/DPO (PII, ikamet), Risk/AML/RG (politika), SRE (SLO/maliyet), Güvenlik.
I (Bilgilendirilmiş): Ürün/Pazarlama/Operasyon/Destek.
17) Yol haritası
MVP (3-5 hafta):1. En iyi 50 özelliklerinin kataloğu (Ödemeler/Oyun), zaman içinde formüllerle.
2. Özellik Mağazası v1 (çevrimiçi/çevrimdışı) + eşdeğerlik testi.
3. Temel seçim: sabitler/korelasyonlar - MI - L1/SHAP kısa liste (60'a kadar özellik).
4. Sürüklenme özelliklerini ve maliyet panolarını izleme.
Faz 2 (5-10 hafta):- Zamana duyarlı doğrulama, grafik ve takvim özellikleri ile TE/WOE.
- Dilim analizi ve adalet, olasılık kalibrasyonu.
- Ağır çevrimdışı özelliklerin, çevrimiçi önbelleğin, kotaların maddeleştirilmesi.
- Otomatik belge oluşturma, CI'da kararlılık seçimi.
- "Pahalı ve işe yaramaz" özelliklerin otomatik olarak devre dışı bırakılması (CPF↑, vklad↓).
- Özellik kümelerinin A/B karşılaştırması, beklenen maliyet raporları.
18) Satış öncesi kontrol listesi
- Tüm özelliklerin özellikleri vardır (sahip, formül, sürümler, SLO).
- Zaman içinde ve çevrimiçi/çevrimdışı eşdeğerlik testlerini geçti.
- Filtre> gömülü (SHAP/L1)> kararlılık tamamlandı.
- Drift izleme ve güvenilirlik yapılandırılmış; eşikler ve uyarılar vardır.
- CPF/gecikme bütçeye uygun; ağır özellikler maddeleşti.
- PII politikaları karşılandı (CLS/RLS, tokenization, residency).
- Dokümantasyon ve kullanım örnekleri kataloğa eklenmiştir.
19) Anti-kalıplar ve riskler
Lakage (gelecekteki olaylar/sonrası promosyon).
Tutarsız çevrimiçi/çevrimdışı formüller.
Hashing/TE olmadan yüksek kardinal kategorilerden aşırı bir-sıcak.
Kalitede ölçülebilir bir artış olmadan "pahalı" özellikler.
Dilim/adalet analizi eksikliği - gizli bozulma.
TE/WOE zaman farkında çapraz doğrulama olmadan - yeniden eğitim.
20) Alt satır
Özellik Mühendisliği yönetilen bir disiplindir: zaman içinde nokta, iş duygusu, tekrarlanabilirlik, izleme ve ekonomi. Güçlü özellikler + sıkı seçim (filtre/sarıcı/gömülü) ve tek bir Özellik Mağazası, Net Geliri artıran, sahtekarlığı azaltan ve RG'yi şeffaf ve uyumlu bir şekilde destekleyen istikrarlı, yorumlanabilir ve ucuz modeller sunar.