3. 机器学习模型入门:监督学习与无监督学习在反洗钱中的应用区别、特征工程初步

在反洗钱(AML)监测领域,机器学习模型正逐步替代传统的规则引擎,以应对日益复杂的洗钱手法。本章将聚焦于监督学习与无监督学习在反洗钱场景下的核心区别,并介绍特征工程的基础方法,为后续模型迭代打下坚实基础。

3.1 监督学习 vs 无监督学习:核心概念与AML应用区别

机器学习模型根据训练数据是否包含标签,主要分为监督学习与无监督学习。在反洗钱场景中,两者的适用阶段和目标截然不同。

对比维度 监督学习 无监督学习
数据标签 需要大量已标注的“正常”与“可疑”样本 无需标签,仅依赖数据内在结构
核心目标 预测未知交易是否为可疑(分类) 发现异常模式、聚类相似行为(异常检测)
典型算法 随机森林、XGBoost、逻辑回归、神经网络 孤立森林、K-Means、DBSCAN、自编码器
AML应用场景 可疑交易报告(STR)评分、高风险客户识别 未知洗钱模式发现、账户行为画像、团伙挖掘
优势 准确率高,可解释性强(特征重要性) 能发现未知风险,适应新手法
挑战 标签稀缺、样本不平衡(可疑样本极少) 结果需人工验证,假阳性率可能较高
实践提示: 在AML项目中,通常采用“无监督学习先行,监督学习跟进”的策略。先用无监督模型发现异常行为簇,再由分析师标注部分样本,用于训练监督模型,实现模型迭代闭环。

3.2 监督学习与无监督学习在AML中的协同流程

下图展示了两种学习范式在反洗钱监测系统中的典型协同工作流:

监督学习与无监督学习在AML中的协同流程 AML 监督学习与无监督学习协同流程 原始交易数据 特征工程 无监督学习 孤立森林 / 聚类 / 自编码器 监督学习 XGBoost / 随机森林 / 逻辑回归 异常模式 / 行为画像 可疑评分 / STR推荐 分析师验证与标注
流程解读: 原始数据经特征工程后,同时进入无监督与监督两条路径。无监督模型产出异常模式和行为画像,监督模型产出可疑评分。两者结果最终由分析师验证,验证后的标注数据可反馈至监督模型进行迭代训练,形成持续优化闭环。

3.3 特征工程初步:从原始数据到模型输入

特征工程是机器学习模型成功的关键。在反洗钱场景中,原始交易数据通常包含交易金额、时间、对手方、渠道等信息,需要经过转换才能成为模型可理解的特征。

3.3.1 特征工程核心步骤

  1. 数据清洗: 处理缺失值、异常值、重复记录。例如,交易金额字段中的空值可用中位数填充。
  2. 特征构建: 基于业务知识生成新特征。例如,计算“单日累计交易金额”、“交易频率”、“夜间交易占比”等。
  3. 特征变换: 对偏态分布的特征进行对数变换或标准化,使模型更稳定。
  4. 特征编码: 将类别型特征(如交易渠道、国家代码)转换为数值型,常用独热编码或目标编码。
  5. 特征选择: 剔除冗余或无关特征,降低维度,防止过拟合。

3.3.2 AML典型特征分类

特征类别 示例特征 业务含义
交易属性 交易金额、交易时间、交易类型 基础交易画像
客户属性 客户年龄、职业、注册时长、风险等级 客户背景风险
行为统计 近30天交易次数、平均金额、最大单笔金额 交易行为模式
网络关系 对手方数量、对手方地域分散度、关联账户数 资金网络复杂度
时间序列 交易间隔标准差、夜间交易占比、节假日交易活跃度 时间异常模式

3.4 特征工程示例:Python代码片段

以下代码展示了从原始交易数据中构建部分AML特征的基本方法:

import pandas as pd
import numpy as np

# 示例原始数据
data = {
    'txn_id': ['T001', 'T002', 'T003'],
    'amount': [5000, 12000, 800],
    'txn_time': ['2024-01-15 14:30:00', '2024-01-15 23:15:00', '2024-01-16 09:00:00'],
    'customer_id': ['C001', 'C001', 'C002'],
    'counterparty_country': ['CN', 'US', 'CN']
}
df = pd.DataFrame(data)
df['txn_time'] = pd.to_datetime(df['txn_time'])

# 特征构建
df['hour'] = df['txn_time'].dt.hour
df['is_night'] = (df['hour'] < 6) | (df['hour'] >= 22)  # 夜间交易标记
df['amount_log'] = np.log1p(df['amount'])  # 对数变换

# 客户维度聚合特征(示例)
customer_features = df.groupby('customer_id').agg(
    txn_count=('txn_id', 'count'),
    avg_amount=('amount', 'mean'),
    max_amount=('amount', 'max')
).reset_index()

print(customer_features)
注意: 特征工程必须紧密结合反洗钱业务规则。例如,“夜间交易”特征在零售场景中可能有效,但在批发业务中可能意义不大。建议与合规分析师共同验证特征的有效性,避免引入噪声。

3.5 监督学习与无监督学习的特征工程差异

两种学习范式对特征工程的要求存在显著差异,具体如下表所示:

维度 监督学习特征工程 无监督学习特征工程
目标导向 围绕标签(可疑/正常)筛选高区分度特征 保留数据内在结构,避免过度降维
特征选择 常用特征重要性、递归特征消除(RFE) 常用方差阈值、相关性分析
特征缩放 树模型可不缩放,线性模型需标准化 距离类算法(如K-Means)必须标准化
类别编码 目标编码可能引入标签泄露,需谨慎 独热编码或标签编码均可
时间窗口 需严格避免未来信息泄露(时间穿越) 可基于全量数据计算统计特征
最佳实践: 在AML项目中,建议先构建一个包含丰富业务特征的基础特征集,然后分别针对监督和无监督模型进行差异化处理。监督模型更注重特征与标签的相关性,无监督模型更注重特征的分布形态和异常敏感度。

通过本章的学习,您应能清晰区分监督学习与无监督学习在反洗钱中的定位,并掌握特征工程的基本流程与关键要点。下一阶段,我们将深入探讨具体模型的构建与调优方法。