变量衍生基础
变量衍生这个词,说白了你就是在原始数据上“造”出新特征。我刚开始做反欺诈的时候,总觉得拿原始字段直接训练模型就行——结果模型 AUC 死活不过 0.7。后来前辈告诉我:“你拿到的只是冰山一角,水面下的信息要靠变量衍生才能挖出来。”嗯,从那以后,我每次建模前都老老实实做一轮变量衍生。
什么是变量衍生
变量衍生就是基于已有字段,通过数学变换、组合、统计计算或时序分析,生成新的特征变量。举个例子:原始表格里有“转账时间”和“转账金额”两个字段,我可以衍生出“过去1小时累计转账金额”、“转账金额的波动率”、“与上一笔转账的时间间隔”——这些新变量才是模型真正能抓住团伙行为的“眼睛”。
为什么团伙识别中需要变量衍生
你想想看,团伙行为和正常行为在原始字段上往往没有明显差异。比如每人每天转账5笔,金额都在100-200元之间——单看这些字段,跟正常用户没区别。但一旦衍生出“转账目标账户重合度”、“资金链路径相似度”,团伙特征就藏不住了。
我归纳了三个核心原因:
- 原始字段信息密度低——单个字段只能表达一个孤立事实,团伙模式需要组合信息才能暴露。
- 团伙行为有隐藏模式——比如“多账号共用设备”、“资金在特定时间段汇聚”,这些模式必须通过衍生变量才能量化。
- 提升模型区分能力——好的衍生变量,常常是模型性能翻倍的关键。我经历过一个项目,加入 5 个精心衍生的关系变量后,AUC 从 0.72 直接跳到 0.89。
常见的变量类型
我把团伙识别中常用的衍生变量分成四大类,每类下面又有几个典型子类。下面这张表可以帮你快速对照:
| 变量类型 | 子类 | 说明 | 示例 |
|---|---|---|---|
| 统计变量 | 总量统计 | 指定时间窗口内的累计值 | 过去1小时转账总金额 |
| 集中趋势 | 均值、中位数、众数 | 30天内转账金额均值 | |
| 离散程度 | 标准差、极差、变异系数 | 资金流入金额的标准差 | |
| 时序变量 | 间隔特征 | 事件之间的时间差 | 相邻转账的间隔秒数 |
| 趋势特征 | 变化率、差分、指数平滑 | 转账金额的 3 阶差分 | |
| 关系变量 | 图结构特征 | 基于图谱计算的中心度、聚类系数等 | 该账号的 PageRank 值 |
| 群体重叠度 | 与已知团伙的设备/IP/账号重叠比例 | 共用设备数 / 无异常设备数 | |
| 行为变量 | 行为频率 | 特定行为的活跃程度 | 每日登录次数、转账触发数 |
| 行为模式 | 行为的周期性、规律性 | 是否存在“深夜转账”模式 |
你看,统计变量是最基础的,几乎所有风控项目都会用;时序变量能捕捉到“突然加速”或“间隔异常”这类变化;关系变量直接对准团伙的社交网络结构;行为变量则刻画用户的操作习惯是否异常。我个人最喜欢的是关系变量——因为团伙的核心特征就是“抱团”,而关系变量就是量化这种抱团程度的最好工具。
下面这张图展示了变量衍生的整体流程,以及四类衍生变量在团伙识别中的位置。你可以看到,原始数据经过基础变量提取后,通过不同方向的变换生成新的衍生变量,最终汇聚成更有效的特征集。
最后再多说一句:别把变量衍生当成一次性工作。我通常在探索性数据分析阶段会试 3~5 轮衍生思路,每轮结束就快速训练一个轻量模型验证效果。效果好就保留,效果差就砍掉——这样做既能节省时间,又能保证衍生出来的变量真的有用。