piyushranjanjsr62-svg/fraud-detection-ml-poc
GitHub: piyushranjanjsr62-svg/fraud-detection-ml-poc
基于机器学习的跨境支付欺诈检测 PoC,通过可解释模型替代规则系统以提升欺诈召回率。
Stars: 0 | Forks: 0
# 跨境交易风险评分引擎 — PoC
**公司:** 一家跨境支付平台
**项目:** 基于 ML 的欺诈检测 PoC — 第一阶段
**数据集:** 合成数据 V3.1(50,800 笔交易 · 500 名客户 · 780 个账户)
**状态:** 第 1 周 — EDA 已完成
## 目标
构建一个可解释的 ML 模型,按欺诈风险对跨境支付交易进行评分。用该模型取代当前基于规则的系统,在保持 RBI/FEMA 合规性以及完全基于 SHAP 的可解释性的同时,实现 ≥15% 的召回率提升。
## 模型范围
| 模型 | 角色 |
|---|---|
| 基于规则的基线 | 对照组 — ML 应用前的基准 |
| Logistic Regression | 可解释的 ML 基线 |
| XGBoost | 冠军候选 A |
| LightGBM | 冠军候选 B |
| Isolation Forest | 异常检测层 |
## 成功标准
| 指标 | 阈值 |
|---|---|
| AUC-PR | ≥ 0.72 |
| 5% FPR 下的召回率 | ≥ 75% |
| 精确率 | ≥ 65% |
| F1 | ≥ 0.68 |
| ML 相比规则基线的召回率提升 | ≥ 15% |
## 仓库结构
```
├── config/ Project configuration (paths, params, thresholds)
├── data/
│ ├── raw/ V3.1 synthetic dataset (not committed to git)
│ ├── processed/ Cleaned data and feature matrix
│ └── output/ Scored transactions, audit logs
├── notebooks/ One notebook per lifecycle stage
├── src/
│ ├── data/ Data loading and cleaning utilities
│ ├── features/ Feature engineering functions
│ ├── models/ Rule baseline and ML model wrappers
│ ├── scoring/ Batch scoring pipeline
│ └── explainability/ SHAP utilities
├── models/ Saved model artifacts (.pkl, .joblib)
├── reports/ Evaluation reports, governance tracker
├── docs/ Learning roadmap, architecture notes
└── tests/ Unit tests for src/ modules
```
## Notebook 顺序
| # | Notebook | 用途 | 状态 |
|---|---|---|---|
| 01 | `01_eda.ipynb` | 探索性数据分析 + 数据泄露关卡 | ✅ 已完成 |
| 02 | `02_rule_baseline.ipynb` | 基于规则的对照组(ML 应用前必做) | ✅ 已完成 |
| 03 | `03_data_cleaning.ipynb` | 缺失值处理,dtype 修复,去重 | ✅ 已完成 |
| 04 | `04_feature_engineering.ipynb` | 跨 5 个类别构建 30+ 特征 | ✅ 已完成 |
| 05 | `05_feature_validation.ipynb` | 方差、相关性、泄露、重要性检查 | ✅ 已完成 |
| 06 | `06_train_test_split.ipynb` | 时间序列 70/20/10 拆分 + 分层抽样 | ✅ 已完成 |
| 07 | `07_logistic_regression.ipynb` | 可解释的 ML 基线 | ✅ 已完成 |
| 08 | `08_xgboost.ipynb` | 冠军候选 A | ❌ 未开始 |
| 09 | `09_lightgbm.ipynb` | 冠军候选 B | ❌ 未开始 |
| 10 | `10_isolation_forest.ipynb` | 异常检测层 | ❌ 未开始 |
| 11 | `11_model_evaluation.ipynb` | 冠军模型选择 + 指标对比 | ❌ 未开始 |
| 12 | `12_threshold_optimization.ipynb` | 精确率/召回率权衡 + 阈值调优 | ❌ 未开始 |
| 13 | `13_shap_explainability.ipynb` | SHAP 值 + top-5 特征解释 | ❌ 未开始 |
| 14 | `14_batch_scoring.ipynb` | 端到端评分 pipeline(CSV 输入 → CSV 输出) | ❌ 未开始 |
| 15 | `15_final_demo.ipynb` | PoC 演示 notebook — 简洁,适合演示 | ❌ 未开始 |
## 合规说明
- 所有数据均为合成数据 — 无真实客户 PII
- 特征设计必须排除事后列(fraud_type, sanction_list_source)
- SHAP 输出格式:特征名称 · 特征值 · 贡献度得分(PoC 第一阶段不含原因代码叙述)
- 审计日志:采用 JSONL 格式以符合 PMLA 合规要求
- RBI 规定:失败交易需在 T+1 内自动冲正
## 环境
```
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
```
标签:Apex, LightGBM, NoSQL, SHAP, XGBoost, 代码示例, 数据分析, 机器学习, 欺诈检测, 逆向工具, 金融风控, 风险评分