一、异常交易检测概述

大家好,我是你们这堂课的主讲人。做风控这些年,我踩过不少坑,也积累了一些实战经验。今天咱们聊聊异常交易检测这个老话题。

说实话,很多人一上来就问我:「到底什么是异常交易?」

我的回答很简单:异常交易就是那些不符合正常行为模式的交易。你想想看,一个用户平时每天消费几十块,突然某天刷了十万块——这肯定不对劲。但问题在于,什么算「正常」?什么算「异常」?边界其实很模糊。

核心定义:异常交易是指与大多数交易行为显著不同、或与历史行为模式严重偏离的交易活动。它可能是欺诈、洗钱、盗刷,也可能是误报。

1.1 业务场景:我在项目中遇到过的真实案例

我参与过几个大型支付平台的风控项目。说实话,每个平台的「异常」定义都不一样。

  • 电商场景:我记得有一次,一个商家在凌晨3点突然涌进大量订单,每笔金额都是999元。系统直接报警了——后来发现是刷单团伙在操作。
  • 银行转账:有个客户平时只在国内消费,突然连续向境外账户转账。这种跨境交易,哪怕金额不大,也值得警惕。
  • 虚拟货币:嗯,这个领域更复杂。我曾经处理过一个案例,一个地址在5分钟内发起200笔小额转账——典型的「粉尘攻击」手法。

你看,不同场景下的异常交易,特征完全不同。所以做特征工程时,场景理解比算法更重要

1.2 挑战:为什么异常交易检测这么难?

我刚开始做风控时,以为只要把数据扔进模型就能搞定。结果呢?被现实狠狠打脸了。

主要挑战有这几个:

  1. 样本极度不平衡——正常交易占99.9%,异常交易可能只有0.1%。你想想看,模型很容易学成「全都判正常」的偷懒模式。
  2. 欺诈手法不断进化——今天你识别了A模式,明天骗子就发明了B模式。我见过一个团伙,每3天换一套攻击策略。
  3. 实时性要求高——交易发生到判定结果,往往只有几百毫秒。你不可能跑一个复杂的深度学习模型。
  4. 特征工程难度大——原始数据往往很脏,需要大量清洗和加工。我曾经花了两周时间,就为了构造一个「设备指纹」特征。

避坑指南:我曾经犯过一个错误——把所有特征一股脑扔进模型,结果过拟合严重。后来才明白,特征不是越多越好,而是要「精」。

1.3 特征工程的核心地位

为什么我要把特征工程单独拿出来讲?因为它是整个异常交易检测的基石。

我个人习惯把风控系统比作「侦探破案」:

  • 原始数据 = 案发现场的各种线索(时间、地点、金额、设备...)
  • 特征工程 = 侦探把这些线索整理成可用的证据(比如「过去1小时交易次数」、「设备是否root」)
  • 模型 = 侦探根据证据做出判断

你看,如果线索都没整理好,再厉害的侦探也破不了案。特征工程就是那个「整理线索」的过程。

具体来说,特征工程在异常交易检测中承担了这些任务:

任务 说明 我常用的方法
数据清洗 处理缺失值、异常值、重复数据 用中位数填充,或者直接删除异常样本
特征构造 从原始数据中衍生出新特征 比如计算「过去N分钟交易次数」、「金额与历史均值的偏差」
特征选择 从大量特征中挑出最有用的 我常用特征重要性排序 + 业务规则筛选
特征变换 让特征更符合模型要求 比如对金额做log变换,或者标准化

我的经验:特征工程往往占整个项目70%以上的时间。别急着调模型参数,先把特征做扎实了。我见过太多团队,模型调参调了两个月,结果发现是特征没做好。

1.4 知识体系框架

下面这张图,是我自己总结的异常交易检测特征工程知识体系。你可以把它当作整个课程的地图。

异常交易检测特征工程知识体系 1. 业务理解与场景分析 2. 数据采集与清洗 3. 特征工程核心 统计特征 | 时序特征 | 行为特征 | 关系特征 | 设备特征 4. 特征选择与降维 5. 模型训练与实时部署

这张图展示了我们整个课程的结构。从业务理解开始,到数据清洗,再到特征工程核心,最后到模型部署。每一步都环环相扣。

我个人建议你把这幅图保存下来。每次学完一个章节,回来看看自己处在哪个位置,心里就有数了。

1.5 一个小例子:从原始数据到特征

光说不练假把式。我给大家看一个最简单的特征构造例子。

假设我们有一条原始交易记录:

{
  "user_id": "U12345",
  "amount": 9999.00,
  "timestamp": "2024-01-15 03:22:10",
  "ip": "192.168.1.100",
  "device_id": "DEV_ABC123"
}

这条数据本身信息量有限。但我们可以构造出这些特征:

# 特征1:过去1小时该用户的交易次数
user_1h_count = 15  # 这个用户1小时内交易了15次

# 特征2:金额与用户历史均值的偏差
amount_deviation = 9999.00 / user_avg_amount  # 假设用户历史均值是100元,偏差=99.99

# 特征3:是否在凌晨交易
is_night = 1  # 凌晨3点,标记为1

# 特征4:设备是否在短时间内切换
device_change_count = 3  # 过去24小时换了3个设备

你看,一条原始记录,经过特征工程后,变成了4个有意义的特征。这些特征才是模型真正能「理解」的信息。

核心观点:特征工程不是简单的数据搬运,而是把业务知识编码成模型能学习的语言。你越懂业务,特征就做得越好。

好了,这一章就到这里。记住一句话:特征工程决定了模型的上限,而模型只是逼近这个上限。后面几章,我会手把手带你做各种实战特征。


蓝海数据掘金营,专注资料整理