4、特征工程入门:特征构建思路与特征选择方法
特征工程是支付风控模型的核心环节,直接影响商户风险分群的准确性与稳定性。原始交易数据通常包含商户ID、交易金额、交易时间、交易类型、设备指纹等字段,需要通过特征工程转化为模型可用的数值化特征。本章聚焦特征构建的三大思路与特征选择的三种主流方法,帮助你在商户风险分群场景中高效提取有效信息。
4.1 特征构建思路
特征构建的目标是从原始数据中提取能够区分高风险与低风险商户的量化指标。根据支付风控的业务特性,特征构建主要分为统计特征、时序特征和比率特征三大类。
4.1.1 统计特征
统计特征是对商户历史交易数据进行聚合计算得到的描述性指标,反映商户的整体行为分布。常见的统计特征包括:
- 交易量统计:日/周/月交易笔数、交易金额的总和、均值、中位数、最大值、最小值。
- 交易离散度:交易金额的标准差、方差、变异系数(CV = 标准差/均值),用于识别金额波动异常的商户。
- 交易集中度:前N%交易金额占总金额的比例,例如前10笔交易金额占比,用于检测小额试探后大额盗刷的模式。
- 失败率统计:支付失败笔数、失败率、失败金额占比,高频失败往往是欺诈的前兆。
4.1.2 时序特征
时序特征关注商户行为随时间的变化趋势,能够捕捉风险行为的动态演化。支付风控中常用的时序特征包括:
- 趋势特征:交易金额的移动平均(MA7、MA30)、线性回归斜率,用于判断交易量是增长还是衰减。
- 周期性特征:小时级/日级交易分布,例如夜间交易占比(0:00-6:00交易笔数/全天笔数),夜间交易异常升高常与盗刷相关。
- 突变特征:交易金额的环比增长率、同比变化率,例如“今日交易金额较前7日均值增长300%”是典型的风险信号。
- 间隔特征:相邻交易的时间间隔均值、标准差,极短间隔(如毫秒级)可能暗示自动化脚本攻击。
4.1.3 比率特征
比率特征通过两个或多个指标的比值来消除量纲影响,更直观地反映商户的风险密度。比率特征在商户风险分群中具有高区分度:
| 比率特征名称 | 计算公式 | 风险含义 |
|---|---|---|
| 失败交易比率 | 失败笔数 / 总交易笔数 | 失败率 > 20% 可能为卡片测试或撞库攻击 |
| 大额交易比率 | 金额 > 阈值笔数 / 总笔数 | 大额占比突增可能为盗刷套现 |
| 新卡比率 | 首次使用卡数 / 总卡数 | 新卡占比高可能为批量注册欺诈 |
| 设备集中度 | 唯一设备数 / 交易笔数 | 设备数远小于笔数可能为模拟器攻击 |
| IP分散度 | 唯一IP数 / 交易笔数 | IP分散度异常可能为代理IP池攻击 |
比率特征的设计需要结合业务经验,例如“失败交易比率”在正常商户中通常低于5%,而欺诈商户可能高达30%-50%。
4.2 特征选择方法
特征构建完成后,通常会产生数十到数百个候选特征。直接使用全部特征会导致模型过拟合、训练缓慢且可解释性差。特征选择的目标是从候选特征中筛选出对商户风险分群最有贡献的子集。主流方法分为过滤法、包裹法和嵌入法三类。
4.2.1 过滤法(Filter Method)
过滤法在模型训练之前,基于统计指标对特征进行独立评估,不依赖任何机器学习算法。其优点是计算效率高,适合高维数据预处理。
| 评估指标 | 适用场景 | 阈值参考 |
|---|---|---|
| 方差阈值 | 剔除取值几乎不变的常数特征 | 方差 < 0.01 的特征直接删除 |
| 皮尔逊相关系数 | 检测特征与目标变量的线性相关性 | |r| < 0.05 的特征可考虑剔除 |
| 卡方检验 | 分类目标下,离散特征与标签的独立性检验 | p-value > 0.05 的特征不显著 |
| 互信息 | 捕捉特征与目标变量的非线性关系 | 互信息 < 0.01 的特征贡献较低 |
| 信息增益 | 决策树视角下特征的分裂能力 | 信息增益 < 0.001 的特征可剔除 |
4.2.2 包裹法(Wrapper Method)
包裹法将特征子集的选择过程包裹在模型训练中,通过搜索策略评估不同特征子集的模型性能。其优点是考虑特征交互,但计算成本较高。
- 递归特征消除(RFE):从全量特征开始,每次迭代剔除对模型贡献最小的特征,直到达到指定特征数。适用于线性模型或树模型。
- 前向选择:从空集开始,每次添加一个使模型性能提升最大的特征,直到性能不再显著提升。
- 后向消除:从全量特征开始,每次剔除一个对模型性能影响最小的特征,直到性能开始显著下降。
- 双向搜索:同时进行前向添加和后向剔除,在每一步选择最优操作,效率高于单向搜索。
4.2.3 嵌入法(Embedded Method)
嵌入法将特征选择过程嵌入到模型训练过程中,在模型拟合的同时自动进行特征重要性排序。其平衡了过滤法的效率和包裹法的准确性。
| 方法 | 代表模型 | 特征重要性来源 | 适用场景 |
|---|---|---|---|
| L1正则化(Lasso) | 逻辑回归 + L1 | 系数绝对值大小,部分系数被压缩为0 | 高维稀疏特征,自动特征选择 |
| 树模型特征重要性 | 随机森林、XGBoost、LightGBM | 基于分裂增益或覆盖度计算重要性 | 非线性关系,特征交互复杂 |
| SHAP值 | 任意模型(模型无关) | 基于博弈论的Shapley值 | 模型可解释性要求高的场景 |
嵌入法的典型代码实现(以Lasso为例):
from sklearn.linear_model import LogisticRegression
from sklearn.feature_selection import SelectFromModel
# 使用L1正则化的逻辑回归进行特征选择
lasso_model = LogisticRegression(penalty='l1', solver='liblinear', C=0.1)
lasso_model.fit(X_train, y_train)
# 基于系数绝对值筛选特征
selector = SelectFromModel(lasso_model, threshold='mean', prefit=True)
X_selected = selector.transform(X_train)
# 获取被选中的特征索引
selected_indices = selector.get_support(indices=True)
print(f"选中特征数量: {len(selected_indices)}")
4.3 特征工程在商户风险分群中的实践要点
结合特征构建与特征选择,在商户风险分群项目中建议遵循以下流程:
- 原始数据清洗:处理缺失值、异常值、重复记录,确保数据质量。
- 批量特征构建:按照统计特征、时序特征、比率特征三大方向,生成50-200个候选特征。
- 过滤法初筛:使用方差阈值和相关系数剔除低信息量特征,将特征维度压缩至100维以内。
- 嵌入法精筛:使用L1正则化或树模型特征重要性,保留Top 20-50个特征。
- 包裹法验证:对精筛后的特征子集使用RFE进行微调,确认最终特征集。
- 特征稳定性评估:在时间序列上验证特征的分布稳定性(PSI < 0.1),避免特征漂移。