3. 机器学习模型入门:监督学习与无监督学习在反洗钱中的应用区别、特征工程初步
在反洗钱(AML)监测领域,机器学习模型正逐步替代传统的规则引擎,以应对日益复杂的洗钱手法。本章将聚焦于监督学习与无监督学习在反洗钱场景下的核心区别,并介绍特征工程的基础方法,为后续模型迭代打下坚实基础。
3.1 监督学习 vs 无监督学习:核心概念与AML应用区别
机器学习模型根据训练数据是否包含标签,主要分为监督学习与无监督学习。在反洗钱场景中,两者的适用阶段和目标截然不同。
| 对比维度 | 监督学习 | 无监督学习 |
|---|---|---|
| 数据标签 | 需要大量已标注的“正常”与“可疑”样本 | 无需标签,仅依赖数据内在结构 |
| 核心目标 | 预测未知交易是否为可疑(分类) | 发现异常模式、聚类相似行为(异常检测) |
| 典型算法 | 随机森林、XGBoost、逻辑回归、神经网络 | 孤立森林、K-Means、DBSCAN、自编码器 |
| AML应用场景 | 可疑交易报告(STR)评分、高风险客户识别 | 未知洗钱模式发现、账户行为画像、团伙挖掘 |
| 优势 | 准确率高,可解释性强(特征重要性) | 能发现未知风险,适应新手法 |
| 挑战 | 标签稀缺、样本不平衡(可疑样本极少) | 结果需人工验证,假阳性率可能较高 |
实践提示: 在AML项目中,通常采用“无监督学习先行,监督学习跟进”的策略。先用无监督模型发现异常行为簇,再由分析师标注部分样本,用于训练监督模型,实现模型迭代闭环。
3.2 监督学习与无监督学习在AML中的协同流程
下图展示了两种学习范式在反洗钱监测系统中的典型协同工作流:
流程解读: 原始数据经特征工程后,同时进入无监督与监督两条路径。无监督模型产出异常模式和行为画像,监督模型产出可疑评分。两者结果最终由分析师验证,验证后的标注数据可反馈至监督模型进行迭代训练,形成持续优化闭环。
3.3 特征工程初步:从原始数据到模型输入
特征工程是机器学习模型成功的关键。在反洗钱场景中,原始交易数据通常包含交易金额、时间、对手方、渠道等信息,需要经过转换才能成为模型可理解的特征。
3.3.1 特征工程核心步骤
- 数据清洗: 处理缺失值、异常值、重复记录。例如,交易金额字段中的空值可用中位数填充。
- 特征构建: 基于业务知识生成新特征。例如,计算“单日累计交易金额”、“交易频率”、“夜间交易占比”等。
- 特征变换: 对偏态分布的特征进行对数变换或标准化,使模型更稳定。
- 特征编码: 将类别型特征(如交易渠道、国家代码)转换为数值型,常用独热编码或目标编码。
- 特征选择: 剔除冗余或无关特征,降低维度,防止过拟合。
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项目中,建议先构建一个包含丰富业务特征的基础特征集,然后分别针对监督和无监督模型进行差异化处理。监督模型更注重特征与标签的相关性,无监督模型更注重特征的分布形态和异常敏感度。
通过本章的学习,您应能清晰区分监督学习与无监督学习在反洗钱中的定位,并掌握特征工程的基本流程与关键要点。下一阶段,我们将深入探讨具体模型的构建与调优方法。