kuongsivhoung-alt/Transaction-fraud-detection-data-engineering-
GitHub: kuongsivhoung-alt/Transaction-fraud-detection-data-engineering-
基于 Lambda 架构的实时金融欺诈检测数据管道,融合 Random Forest 模型与 PySpark 流推理,解决高频交易场景下批量训练与实时预测的工程衔接问题。
Stars: 0 | Forks: 0
# 实时金融欺诈检测与智能风控系统
一个端到端的数据工程 pipeline,旨在弥合历史批量训练与实时流推理之间的差距,由 Random Forest 和 AWS 提供支持。
## 项目亮点
- **工程架构**:实现了 **Lambda Architecture**,将离线模型训练与实时流推理分离。
- **数据 Pipeline**:构建了一个自动化、可用于生产环境的 pipeline:
`Python Simulator` → `AWS RDS (SQL Server)` → `PySpark Inference Engine` → `Tableau Live Dashboard`。
- **工程优化**:
- **性能**:使用 JDBC `WITH (NOLOCK)` 优化了数据提取,消除了数据库锁竞争,确保了亚秒级的推理延迟。
- **可扩展性**:配置了 PySpark **micro-batching** 来处理高速交易流,同时保护本地内存资源。
- **ML 模型**:利用 **Random Forest** 进行高精度的欺诈分类,并针对金融数据集中固有的极端类别不平衡进行了专门优化。
## 系统架构
- **系统图:**
https://drive.google.com/file/d/1yJDWJ__X1mAq2eWVvyUucI2CeNXXsL4-/view?usp=sharing
- **Tableau 仪表板:**
- **仪表板文件:** prediction.twb
## 技术栈
- **语言**:Python, SQL, PySpark
- **大数据与处理**:Apache Spark (Micro-batching)
- **数据库**:AWS RDS (Microsoft SQL Server)
- **可视化**:Tableau Desktop (Live Mode)
- **建模**:Random Forest (scikit-learn, imblearn)
## 关键技术挑战
1. **数据库瓶颈**:模拟器产生的高频 INSERT 导致 PySpark 推理引擎出现持续死锁。
- *解决方案*:在 JDBC 查询中应用 `WITH (NOLOCK)`,允许“脏读”以在不中断提取流的情况下保持高吞吐量的数据读取。
2. **内存管理**:使用 SMOTE 过采样处理数百万笔交易存在内存溢出的风险。
- *解决方案*:实施了严格的预处理 pipeline(行过滤 -> 数据拆分 -> SMOTE),以确保训练效率并严格防止 **Data Leakage**。
## 如何运行
1. **数据库设置**:在您的 AWS RDS 实例中执行提供的 SQL 脚本,以初始化 `dbo.live_transactions` 和 `dbo.fraud_predictions`。
2. **启动模拟器**:运行 `stream_simulator.ipynb` 以启动交易流模拟。
3. **运行推理引擎**:执行 `prediction.ipynb` 以开始实时欺诈预测和数据库回写。
4. **可视化**:在 **Live Mode** 下打开 Tableau 仪表板以实时监控欺诈趋势。
标签:Apex, AWS, DPI, 多线程, 数据工程, 机器学习, 欺诈检测, 流处理, 逆向工具, 金融风控