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, 代码示例, 多线程, 异常检测, 数据分析, 无后门, 机器学习, 欺诈检测, 逆向工具