功能工程和特征选择
1)任命和原则
目的:设计离线和在线协调一致的可持续、可解释和经济的特征。
原则:- 点对点时间:fici是从决策时可用的数据中计算出来的,没有未来(anti-leakage)。
- 领域第一:fici反映了业务机制(存款,会话,游戏类型,RG/AML)。
- Reuse&Contracts:Feature Store中的字体版本,所有者,公式和SLO。
- Cost-aware:我们相信计算/存储的延迟和成本→实现只有回报。
- 观察能力:监测漂移/稳定性/校准;在线/离线等效性测试。
2)iGaming的特征分类
RFM/行为:在窗户上回应/频率/monetary(10米/1 小时/1d/7d/30 d)。
会话:持续时间,暂停,设备更改/ASN,操作速度。
金融:存款/收款/收款,支付方法份额,外汇正常化。
游戏:流派简介,提供商波动,RTP集群,赢街。
营销:渠道/UTM,广告系列响应,aturation/cooldown。
RG/AML:限制,自我体验标志,velocity模式,BIN/IP重用。
地理/时间:当地日历/假期,皮带小时,晚上/晚上。
图形:用户卡-设备-ip链接,中心性/组件,"环"指纹。
NLP/歌词:提卡/聊天主题和音调;关键投诉。
操作:提供程序失效/错误,会话稳定性(用于SRE模型)。
3)窗口和单元(点对点时间)
示范窗户:10 米/1h/24h/7d/30d。每个窗口为count/sum/mean/std/last/max/min, ratio和rate。
SQL模板(30 d存款,没有未来):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和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.
周期:滚动平均/expon。平滑化(EMA),deltas(t − t-1)。
基于活动的时间:从最后一次存款/获胜/亏损"冷却"开始。
7)图形(frod/AML)
顶点:user/card/device/ip。肋骨:交易/会话/联合招标。
Fichi:大小组件,degree, betweenness, pagerank, triads,重新出现。
Template: nightly batch构建图形→ embeddings/centrality →在线缓存。
8) NLP-FICHI (sapport/聊天/咆哮)
基本内容:TF-IDF/NMF主题,感知,长度,投诉频率。
提前:embeddings(Sentence-BERT)→每个窗口的柚木平均值。
PII:根据策略进行前后掩护(电子邮件,PAN,电话)。
9) Geo/ASN和设备
IP→Geo/ASN:缓存和更新;不要在没有计时/缓存的情况下在线进行同步查询。
Fichi: ASN/DeviceID稳定性、班次频率、登录距离。
10)反泄漏和联机/离线约定
点对点加盟,未来的窗口/标签事件。
用于离线和在线的单个转换代码(库)。
等效性测试:在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/序列 FS:在小集/逻辑回归上。
稳定性选择:在butstrap 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)稳定性、漂移和校准
漂流:PSI/KS在假发和争球上;超出阈值时的异常值。
稳定性:监视"脆弱"TE/WOE(基数/位移)。
校准:Platt/Isotonic;可靠性报告。
Slice分析:市场/提供商/设备-指标和预期错误成本的银行标记。
13)成本工程和性能
每项成本功能(CPF):CPU/IO/网络/存储 →模型预算。
实现:重型离线,轻型在线;热电话的TTL/缓存。
远程lookups:仅async+缓存;p95 <20-30毫秒在线。
Chargeback:按团队计费。
14)功能商店(一致性核心)
注册表:名称,公式,所有者,SLO,测试,版本。
在线/离线同步:一个转换代码,等级测试。
Logi/审计:谁改变了公式;版本对模型度量的影响。
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)流程和RACI
A (Accountable): Head of Data / CDO.
R(响应能力):Data Eng(流水线/功能商店),Data Science(设计/选择/度量)。
C(咨询):合规性/DPO(PII,驻地),风险/AML/RG(规则),SRE(SLO/费用),安全性。
I (Informed):产品/营销/运营/支持。
17)路线图
MVP(3-5周):1.带有点对点公式的前50英尺(Payments/Gameplay)目录。
2.Feature Store v1 (online/offline)+等效性测试。
3.基本选择:常数/相关性→ MI → L1/SHAP shortlist(最多60 fich)。
4.监控漂移奇数和成本差速板。
第二阶段(5-10周):- TE/WOE具有time-aware验证,图形和日历字体。
- Slice分析和公平性,概率校准。
- 实现重型离线幻灯片,在线缓存,配额。
- CI中的Fich,稳定性选择文档的自动生成。
- 自动停用"昂贵和无用"的照片(CPF↑,vklad↓)。
- A/B对照组,expected-cost报告。
18)售前支票清单
- 所有的fici都具有规格(所有者,公式,版本,SLO)。
- 通过了点对点测试和联机/离线等效性测试。
- 选择是:filter → embedded (SHAP/L1) →稳定性。
- 已配置漂移监视和可用性;阈值和Alertes是。
- CPF/latency符合预算;重型仙女物化了。
- 遵守了PII政策(CLS/RLS,令牌化,居住权)。
- 已将文档和使用示例添加到目录中。
19)反模式和风险
Lakedge(促销活动的未来/影响)。
不一致的在线/离线公式。
来自高基数类别的供过于求,没有hashing/TE。
"昂贵"的fichi没有可衡量的质量提高。
缺少slice/fairness分析-隐藏降级。
TE/WOE没有时间奖励交叉验证→再培训。
20)结果
功能工程是一门管理学科:按时间,业务意义,可重复性,监控和经济性。强大的fici+严格的选择(过滤器/wrapper/embedded)和单一的Feature Store提供了稳定,可解释且便宜的模型,可改善Net Revenue,减少鞭打并支持RG-透明且可支持。