manisio/fraud-detection-project
GitHub: manisio/fraud-detection-project
基于 Isolation Forest 和 Z-score 的无监督金融欺诈检测 pipeline,通过行为特征工程和信任过滤层在保持召回率的同时显著降低误报。
Stars: 0 | Forks: 0
# 欺诈检测分析
一个基于无监督的异常检测 pipeline,使用 Isolation Forest 和统计(Z-score)方法来标记异常的金融交易,能够发现基于静态规则的系统通常容易遗漏的异常情况。
## 概述
传统的基于规则的欺诈检查(例如“金额 > $1000”的固定阈值)无法捕捉不断演变的欺诈模式,并且经常对正常交易进行过度标记。本项目应用**无监督机器学习**,基于行为偏差、交易频率和时间段模式来检测异常 —— 同时使用二级信任信号层来减少误报。
## 技术栈
- **Python** — Pandas, NumPy, Scikit-learn
- **SQL** — 特征聚合查询
- **Power BI** — 异常可视化仪表板
## 数据集
包含 10,000 条交易记录,特征包括:`amount`、`transaction_hour`、`merchant_category`、`foreign_transaction`、`location_mismatch`、`device_trust_score`、`velocity_last_24h` 以及真实的 `is_fraud` 标签(151 个欺诈案例,1.51% 的欺诈率)。
## 方法
### 1. 特征工程
- **支出偏差**:相对于商户类别规范的交易金额 Z-score
- **基于时间的聚类**:根据交易时间提取夜间交易标记(`is_night`)
- **交易频率**:每个画像在滚动 24 小时内的交易计数
- 对 **商户类别编码** 以作为模型输入
### 2. 异常检测
- **Isolation Forest**(无监督,`contamination=0.02`)在工程化特征上进行训练,用于标记固定规则检查无法发现的统计异常值
- **Z-score 规则** 作为对极端金额偏差的补充统计检查
### 3. 减少误报
结合了 Isolation Forest 和 Z-score 信号,随后应用了**行为信任过滤器** —— 即使被标记,来自历史高信任度设备的交易也会被降权处理,从而将正常的行为变化(例如合法的大额购买)与实际欺诈区分开来。这一步骤在保持欺诈召回率的同时,将误报减少了 **101 例**。
## 结果
| 模型阶段 | 精确率 (欺诈) | 召回率 (欺诈) | 误报 |
|---|---|---|---|
| 仅 Isolation Forest | 0.33 | 0.43 | — |
| 联合 + 信任过滤器 | 0.24 | 0.39 | -101 减少 |
## 项目结构
标签:Apex, Python, 代码示例, 多线程, 异常检测, 数据分析, 无后门, 机器学习, 欺诈检测, 逆向工具