4. 样本构建核心概念

在异常交易检测项目中,样本构建的质量直接决定模型的上限。本章围绕五个核心概念展开:正负样本定义、样本不平衡、样本权重、滑动窗口与回溯窗口。理解这些概念,是构建可靠训练集的前提。

4.1 正负样本定义

异常交易检测本质上是二分类问题,但“异常”的定义需要结合业务规则与数据特征。正样本(异常交易)通常包括:

  • 已知欺诈交易:经风控团队确认的盗刷、洗钱、虚假交易等。
  • 高风险行为:短时间内频繁交易、跨地域异常登录后的大额转账。
  • 规则命中样本:触发风控规则(如IP黑名单、设备指纹异常)的交易。

负样本(正常交易)则涵盖所有未被标记为异常的交易。但需要注意:负样本中可能隐藏着尚未发现的异常(即“脏数据”),这会影响模型评估的准确性。

样本类型 定义 常见来源 注意事项
正样本(异常) 经确认的欺诈、违规或高风险交易 人工标注、规则引擎、历史黑名单 数量稀少,需避免标注错误
负样本(正常) 未被标记为异常的交易 全部交易流水(排除正样本后) 可能包含未发现的异常,需定期清洗
难例样本 模型预测置信度接近0.5的样本 模型预测结果筛选 可用于主动学习或阈值调整
实践建议: 在定义正样本时,建议采用“多级标签”策略。例如:标签0=正常,标签1=疑似异常(需人工复核),标签2=确认异常。这样可以在模型训练中引入不确定性,避免硬标签带来的过拟合。

4.2 样本不平衡问题

异常交易数据集中,正样本占比通常低于1%,甚至低至0.01%。这种极端不平衡会导致模型倾向于预测所有样本为“正常”,从而获得看似很高的准确率,但实际召回率极低。

不平衡带来的主要问题:

  • 模型偏向多数类:损失函数被大量负样本主导,正样本的梯度被稀释。
  • 评估指标失真:准确率(Accuracy)失去意义,需关注精确率、召回率、F1-score和AUC。
  • 过拟合风险:少数类样本数量少,模型容易“记住”这些样本而非学习通用模式。
样本不平衡问题示意图 负样本(正常) 99.9% 正样本(异常) 0.1% 极端不平衡
关键指标: 在不平衡场景下,请使用以下指标评估模型:
• 召回率(Recall):检测出的异常占全部异常的比例。
• 精确率(Precision):检测出的异常中真正异常的比例。
• F1-score:召回率与精确率的调和平均。
• AUC-ROC:衡量模型对正负样本排序能力的综合指标。

4.3 样本权重

样本权重是缓解不平衡问题的直接手段。通过给少数类(正样本)分配更高的权重,强制模型在训练时更加关注这些样本。

常见的权重设置方法:

  • 逆频率权重:权重 = 总样本数 / (类别数 × 该类样本数)。例如,正样本占比0.1%,则其权重约为负样本的1000倍。
  • 业务代价权重:根据误判代价设定。例如,漏掉一笔欺诈交易可能损失1000元,而误判一笔正常交易仅损失10元,则正样本权重可设为负样本的100倍。
  • 自适应权重:在训练过程中动态调整,例如根据模型当前对每个样本的预测误差来调整权重(如Focal Loss中的做法)。
权重方法 计算方式 适用场景 优点 缺点
逆频率权重 N / (K × n_k) 通用场景,无额外业务信息 简单、可复现 可能放大噪声样本的影响
业务代价权重 根据误判成本比例设定 有明确成本核算的业务 与业务目标对齐 成本量化困难
Focal Loss -(1-p_t)^γ × log(p_t) 难例挖掘、高噪声场景 自动降低易分类样本权重 超参数γ需要调优
注意: 样本权重并非越大越好。过高的权重会导致模型对少数类过拟合,在验证集上表现良好,但在真实线上环境中因数据分布变化而失效。建议权重上限不超过总样本数的5%。

4.4 样本时间窗口

交易数据具有强时间依赖性。一个用户的历史行为模式、近期交易频率、与当前交易的间隔时间,都是判断异常的重要特征。因此,样本构建必须引入时间窗口机制。

4.4.1 滑动窗口

滑动窗口用于生成连续的时间序列特征。例如,统计过去24小时内用户的交易次数、金额总和、设备变化次数等。窗口大小通常根据业务周期设定:

  • 短窗口(5分钟-1小时):检测高频交易、刷单行为。
  • 中窗口(1天-7天):检测日交易量突变、跨日异常模式。
  • 长窗口(30天-90天):检测账户休眠后突然活跃、长期行为偏移。

4.4.2 回溯窗口

回溯窗口用于确定样本的标签归属。在异常交易检测中,一笔交易是否被标记为异常,往往需要观察其发生后一段时间内的结果(如是否被用户投诉、是否发生资金损失)。

例如:

  • 当前时间点 t 发生一笔交易。
  • 设定回溯窗口为 T=7 天。
  • 如果在 [t, t+T] 时间内该交易被确认为欺诈,则标记为正样本。
  • 如果超过 T 天仍未确认,则标记为负样本(或从训练集中剔除)。
时间窗口机制:滑动窗口 + 回溯窗口 t-7d t-3d t(当前交易) t+3d t+7d 滑动窗口:提取历史特征(过去7天) 回溯窗口:等待标签确认(未来7天) ★ 说明: • 滑动窗口用于生成特征,窗口内数据必须发生在当前交易之前。 • 回溯窗口用于确定标签,窗口内数据发生在当前交易之后,需等待时间流逝。
工程实现要点:
1. 滑动窗口特征计算应使用离线批处理或流式计算框架(如Spark Streaming、Flink),避免在模型推理时实时计算。
2. 回溯窗口的长度需根据业务确认周期设定。例如,信用卡欺诈通常在3-7天内被持卡人发现,因此回溯窗口设为7天较为合理。
3. 注意“未来信息泄露”:在构建训练样本时,只能使用当前时刻之前的数据计算特征,不能使用未来数据。

4.5 样本构建流程总结

将上述概念整合,一个完整的样本构建流程如下:

  1. 数据采集:获取原始交易流水、用户行为日志、设备信息等。
  2. 时间对齐:按交易时间排序,确保时间顺序正确。
  3. 特征提取:使用滑动窗口计算每个交易时刻的历史统计特征。
  4. 标签生成:使用回溯窗口,根据未来T天内是否发生确认异常来标记样本。
  5. 样本筛选:剔除回溯窗口内尚未确认的样本(即“悬而未决”的交易)。
  6. 不平衡处理:应用样本权重、过采样(如SMOTE)或欠采样策略。
  7. 数据集划分:按时间顺序划分训练集、验证集、测试集,避免时间穿越。
核心原则: 样本构建必须严格遵循“时间因果律”——特征只能来自过去,标签只能来自未来。任何违反这一原则的操作都会导致模型在线上失效。