Μηχανική χαρακτηριστικών και επιλογή χαρακτηριστικών
1) Σκοπός και αρχές
Στόχος: κατασκευή σταθερών, ερμηνεύσιμων και οικονομικών χαρακτηριστικών που συμφωνούνται μεταξύ offline και online.
Αρχές:- point-in-time: τα χαρακτηριστικά υπολογίζονται από τα δεδομένα που είναι διαθέσιμα κατά τη στιγμή της λύσης, χωρίς μέλλον (αντιδιαρροή).
- Πρώτα στον τομέα: τα χαρακτηριστικά αντικατοπτρίζουν την επιχειρηματική μηχανική (καταθέσεις, συνεδρίες, είδη παιχνιδιών, RG/AML).
- Επαναχρησιμοποίηση & συμβάσεις: εκδόσεις Feature Store, ιδιοκτήτες, τύποι και SLO.
- Επίγνωση του κόστους: θεωρούμε ότι η καθυστέρηση και το κόστος της πληροφορικής/αποθήκευσης → υλοποιούνται μόνο κατά την αποπληρωμή.
- Παρατηρησιμότητα: παρασυρόμενη/σταθερότητα/βαθμονόμηση της οθόνης. δοκιμή ισοδυναμίας on/offline.
2) Χαρακτηριστική ταξινόμηση για το iGaming
RFM/συμπεριφορά: συχνότητα/συχνότητα/νόμισμα από παράθυρα (10m/1h/1d/7d/30d).
Συνεδρία: διάρκειες, παύσεις, αλλαγές συσκευής/ASN, ταχύτητα δράσης.
Χρηματοοικονομικά: καταθέσεις/αναλήψεις/χρεώσεις, μερίδια των μεθόδων πληρωμής, κανονικοποίηση FX.
Τυχερά παιχνίδια: προφίλ είδους, μεταβλητότητα παρόχου, ομάδες RTP, win-streak.
Μάρκετινγκ: κανάλια/UTM, απαντήσεις σε εκστρατείες, κορεσμός/ψύξη.
RG/AML: όρια, σημαίες αυτοαποκλεισμού, πρότυπα ταχύτητας, επαναχρησιμοποίηση BIN/IP.
Γεωγραφική ώρα: τοπικά ημερολόγια/διακοπές, ώρα ζώνης, βράδυ/νύχτα.
Γραφική παράσταση: σύνδεσμοι χρήστη-κάρτας-συσκευής-ip, κεντρικός χαρακτήρας/συστατικά στοιχεία, δακτύλιοι απάτης.
NLP/κείμενα: θέματα και τόνος εισιτηρίων/συνομιλιών· βασικές καταγγελίες.
Λειτουργικό: σφάλματα καθυστέρησης/παροχής, σταθερότητα συνεδρίας (για μοντέλα SRE).
3) Παράθυρα και συγκεντρωτικά μεγέθη (point-in-time)
Τυπικά παράθυρα: 10m/1h/24h/7d/30d. Για κάθε παράθυρο - αριθμός/άθροισμα/μέσος όρος/std/τελευταίος/μέγιστος/λεπτό, λόγος και ρυθμός.
Υπόδειγμα SQL (30δ καταθέσεις, χωρίς μέλλον):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: για σπάνιες/υψηλού επιπέδου κατηγορίες (παιχνίδια, πάροχοι).
Κωδικοποίηση στόχου (TE): Μέσοι όροι-στόχοι με k-fold/leave-one-out και χρονικά 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. ημερολόγιο), ημέρα πληρωμής.
Συχνότητα: κινούμενοι μέσοι όροι/expon. εξομάλυνση (EMA), δέλτα (t − t-1).
Βάσει γεγονότος: χρόνος από την τελευταία κατάθεση/νίκη/απώλεια, «ψύξη».
7) Γραφική παράσταση (απάτη/AML)
Κορυφές: χρήστης/κάρτα/συσκευή/ip. Ακμές: συναλλαγές/συνεδριάσεις/κοινά χαρακτηριστικά.
Χαρακτηριστικό: μέγεθος συστατικών, βαθμός, βαθμός βήτα, ειδωλολατρική, τριάδες, επανεμφάνιση.
Μοτίβο: νυχτερινή παρτίδα δημιουργεί ένα γράφημα → ενσωμάτωση/κεντρική → online κρυφή μνήμη.
8) Χαρακτηριστικά NLP (υποστήριξη/συνομιλίες/κριτικές)
Βασικά: θέματα TF-IDF/NMF, συναίσθημα, μήκος, συχνότητα καταγγελιών.
Προηγμένη: ενσωμάτωση (Send-BERT) → κατά μέσο όρο στα εισιτήρια ανά παράθυρο.
PII: pre- και post-masking (email, PAN, τηλέφωνα) ανά πολιτική.
9) Geo/ASN και διατάξεις
: κρύπτουμε και ενημερώνουμε· δεν υποβάλλουν συγχρονισμένες αιτήσεις στο διαδίκτυο χωρίς χρονοδιάγραμμα/κρύπτη.
Χαρακτηριστικά γνωρίσματα: σταθερότητα ASN/DevidID, συχνότητα μετατοπίσεων, απόσταση μεταξύ συνδέσμων.
10) Αντι-διαρροή και επιγραμμική/μη επιγραμμική συμφιλίωση
Συνδεθείτε σε point-in-time, χωρίς μελλοντικά γεγονότα σε παράθυρα/ετικέτες.
Ένας κωδικός μετασχηματισμού (βιβλιοθήκη) για offline και online.
Δοκιμή ισοδυναμίας: στο δείγμα Τ, συγκρίνουμε τις επιγραμμικές τιμές του χαρακτηριστικού με το offline (MAE/MAE).
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 Φίλτρο
11. 2 Περιτύλιγμα
RFE/Διαδοχικό FS: σε μικρά σύνολα/λογιστική παλινδρόμηση.
Επιλογή σταθερότητας: σταθερότητα στη δειγματοληψία bootstrap.
11. 3 Ενσωματωμένο
: σπάνια δράση.
Δένδρα/GBDT: σημασία/SHAP για την επιλογή και την ερμηνεία των επιχειρήσεων.
Ομάδα Lasso: επιλογή ομάδας (σύνολα bin-χαρακτηριστικά μιας μεταβλητής).
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 (πληθικότητα/βάρδιες).
Βαθμονόμηση: Platt/Isotonic. εκθέσεις αξιοπιστίας.
Ανάλυση μεριδίων: αγορές/πάροχοι/συσκευές - μετρήσεις και αναμενόμενο κόστος σφαλμάτων.
13) Μηχανική κόστους και επιδόσεις
Κόστος ανά χαρακτηριστικό (CPF): προϋπολογισμός μοντέλου CPU/IO/δίκτυο/αποθήκευση →.
Υλοποίηση: βαρύ offline, φως online. TTL/κρύπτη για θερμά χαρακτηριστικά.
Απομακρυσμένες επιφάνειες: μόνο async + cache. p95 <20-30 ms σε λειτουργία online.
Φόρτιση: καταγραφή του κόστους του χαρακτηριστικού/συμπεράσματος με εντολή.
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;
Σταγόνα κατά της συσχέτισης (ιδέα SQL):
sql
-- вычислить корреляции и удалить пары с ρ >0.95, сохранив более «дешевую» фичу
WOE binning (σκίτσο):
python bins = monotonic_binning(x, y, max_bins=10)
woe = compute_woe(bins)
iv = compute_iv(bins)
16) Διαδικασίες και ΠΓΣ
R (Υπεύθυνος): Eng δεδομένων (αγωγοί/Feature Store), Data Science (χαρακτηριστικό σχεδιασμού/επιλογή/μετρήσεις).
A (υπόλογος): Προϊστάμενος δεδομένων/CDO.
C (Ζητήθηκε η γνώμη): Συμμόρφωση/ΥΠΔ (PII, κατοικία), Κίνδυνος/AML/RG (πολιτική), SRE (SLO/κόστος), Ασφάλεια.
I (Ενημερωμένο): Προϊόν/Εμπορία/Δραστηριότητες/Υποστήριξη.
17) Χάρτης πορείας
MVP (3- 5 εβδομάδες):1. Κατάλογος των 50 κορυφαίων χαρακτηριστικών (Πληρωμές/Gameplay) με τύπους point-in-time.
2. Feature Store v1 (online/offline) + δοκιμή ισοδυναμίας.
3. Βασική επιλογή: σταθερές/συσχετίσεις → MI → L1/SHAP λίστα προεπιλογής (έως 60 χαρακτηριστικά).
4. Παρακολούθηση των παρασυρόμενων χαρακτηριστικών και των πινάκων κόστους.
Φάση 2 (5- 10 εβδομάδες):- TE/WOE με επικύρωση γνώσης χρόνου, γραφική παράσταση και χαρακτηριστικά ημερολογίου.
- Ανάλυση φέτες και δικαιοσύνη, βαθμονόμηση πιθανότητας.
- Υλοποίηση βαρέων offline χαρακτηριστικών, online cache, ποσοστώσεις.
- Αυτόματη δημιουργία τεκμηρίωσης, επιλογή σταθερότητας στον ΚΚΠ.
- Αυτόματη απενεργοποίηση «ακριβών και άχρηστων» χαρακτηριστικών (CPF↑, vklad↓).
- Α/Β σύγκριση των συνόλων χαρακτηριστικών, εκθέσεις αναμενόμενου κόστους.
18) Κατάλογος ελέγχου πριν από την πώληση
- Όλα τα χαρακτηριστικά έχουν προδιαγραφές (ιδιοκτήτης, τύπος, εκδόσεις, SLO).
- Πέρασαν δοκιμές ισοδυναμίας σε χρόνο και σε απευθείας σύνδεση/εκτός σύνδεσης.
- Φίλτρο → ενσωματωμένο (SHAP/L1) → σταθερότητα ολοκληρώθηκε.
- Παρασυρόμενη διάταξη παρακολούθησης και αξιοπιστίας. τα κατώτατα όρια και οι προειδοποιήσεις είναι.
- CPF/καθυστέρηση που εντάσσεται στον προϋπολογισμό· υλοποιήθηκαν βαριά χαρακτηριστικά.
- τηρούνται οι πολιτικές PII (CLS/RLS, μαρκινοποίηση, κατοικία).
- Στον κατάλογο προστέθηκαν τεκμηρίωση και περιπτώσεις χρήσης.
19) Αντισυμβαλλόμενοι και κίνδυνοι
Lakage (μελλοντικά γεγονότα/επακόλουθο promo).
Ασυνεπείς διαδικτυακοί/μη διαδικτυακοί τύποι.
Υπερπροσφορά ενός θερμού από κατηγορίες υψηλού καρδινάλιου χωρίς hashing/TE.
«Ακριβά» χαρακτηριστικά χωρίς μετρήσιμη αύξηση της ποιότητας.
Έλλειψη ανάλυσης φέτων/δικαιοσύνης - κρυφή υποβάθμιση.
TE/WOE χωρίς χρονοβόρα διασταυρούμενη επικύρωση → επανεκπαίδευση.
20) Η τελική γραμμή
Το Feature Engineering είναι ένας διαχειριστικός κλάδος: point-in-time, επιχειρηματική αίσθηση, αναπαραγωγιμότητα, παρακολούθηση και οικονομικά. Ισχυρά χαρακτηριστικά + αυστηρή επιλογή (φίλτρο/περιτύλιγμα/ενσωματωμένο) και ένα ενιαίο κατάστημα χαρακτηριστικών δίνουν σταθερά, ερμηνεύσιμα και φθηνά μοντέλα που βελτιώνουν τα καθαρά έσοδα, μειώνουν την απάτη και υποστηρίζουν την RG - με διαφάνεια και συμμόρφωση.