RahimAbbas55/Fraud-Radar-ML

GitHub: RahimAbbas55/Fraud-Radar-ML

该项目构建了一个生产级实时欺诈评分系统,通过 Kafka 流式处理、规则引擎与 ML 模型并行评分,并借助 SHAP 提供可解释的风险决策。

Stars: 0 | Forks: 0

# fraud-radar-ml ![状态](https://img.shields.io/badge/status-in%20progress-yellow) ![Python](https://img.shields.io/badge/python-3.10+-blue?logo=python&logoColor=white) ![FastAPI](https://img.shields.io/badge/FastAPI-009688?logo=fastapi&logoColor=white) ![Kafka](https://img.shields.io/badge/Kafka-231F20?logo=apachekafka&logoColor=white) ![XGBoost](https://img.shields.io/badge/XGBoost-EC0000?logo=xgboost&logoColor=white) ![Docker](https://img.shields.io/badge/Docker-2496ED?logo=docker&logoColor=white) ![许可证](https://img.shields.io/badge/license-MIT-lightgrey) 受 **Stripe Radar** 启发的实时交易欺诈评分系统——结合规则引擎、机器学习(XGBoost + Isolation Forest)和可解释性(SHAP),构建于流处理 pipeline 之上,旨在还原生产级金融科技欺诈系统的真实架构:不仅仅是 notebook 中的模型,而是一个具备评分、可解释且感知规则的决策层。 ## 为什么做这个项目 大多数欺诈检测作品集仅停留在“在 Kaggle 数据集上训练了一个分类器”。本项目旨在反映生产环境中欺诈评分的真实运作方式: - **连续风险评分 + 决策区间**(`allow` / `review` / `block`),而非二分类标签 - **ML 模型与规则引擎并行**——效仿 Radar 将商家自定义规则与学习到的风险评分相结合的方法 - **每次决策的可解释性**——SHAP 值揭示交易被标记的*原因* - **实时流处理**,而非批量评分——交易通过 Kafka 回放并实时到达评分 - **监督学习与无监督学习对比**——深入探讨为何银行在生产环境中可能会选择离线评估指标较低的无监督模型(标签延迟、概念漂移) ## 架构 ``` flowchart LR A[Transaction CSV] -->|Producer| B[Kafka: transactions topic] B --> C[FastAPI Consumer Service] C --> D{Rules Engine} C --> E["ML Model (XGBoost / Isolation Forest)"] D --> F[Risk Score + Decision Band] E --> F F --> G[SHAP Explanation] F --> H[Kafka: fraud-scores topic] H --> I[(Postgres / SQLite)] C -.->|/score endpoint| J[Synchronous REST client] ``` ## 技术栈 | 层级 | 选择 | |---|---| | 数据 | [Kaggle 信用卡欺诈检测 (ULB)](https://www.kaggle.com/mlg-ulb/creditcardfraud) | | 建模 | Scikit-learn (Isolation Forest), XGBoost, SHAP | | 规则引擎 | 基于自定义阈值的规则(金额、频率) | | 流处理 | Kafka (Docker Compose, KRaft 模式) | | 服务提供 | FastAPI | | 容器化 | Docker Compose | | 部署 | AWS | ## 项目结构 ``` fraud-radar-ml/ ├── README.md ├── requirements.txt ├── .gitignore ├── docker-compose.yml # added Phase 2 ├── data/ # raw data (gitignored, see setup below) ├── notebooks/ │ └── 01_eda.ipynb ├── src/ │ ├── config.py │ ├── data_loader.py │ ├── features.py │ ├── train.py │ └── evaluate.py ├── models/ # trained models (gitignored) └── tests/ └── test_features.py ``` ## 环境配置 ``` git clone https://github.com//fraud-radar-ml.git cd fraud-radar-ml python -m venv venv source venv/bin/activate pip install -r requirements.txt ``` 从 [Kaggle](https://www.kaggle.com/mlg-ulb/creditcardfraud) 下载数据集,并将 `creditcard.csv` 放置在 `data/` 目录下。 ## 路线图 - [ ] **阶段 1 — 数据与建模**:EDA、监督学习与无监督学习模型对比(precision/recall/PR-AUC) - [ ] **阶段 2 — Kafka 流处理配置**:Docker Compose Kafka broker、producer 回放脚本、consumer 服务 - [ ] **阶段 3 — Radar 风格的决策层与 API**:规则引擎、风险评分 + 决策区间、SHAP 可解释性、FastAPI endpoint - [ ] **阶段 4 — 监控、文档与部署**:延迟/吞吐量基准测试、架构文档、AWS 部署 ## 进度日志 ### 第 1 天 - 搭建项目骨架,初始化仓库结构 *另请参阅:[UK-Tech-Job-Analyzer](#) 和 [Credit Risk ML Pipeline](#)。*
标签:Apex, AV绕过, FastAPI, Kafka, SonarQube插件, XGBoost, 实时风控, 机器学习, 欺诈检测, 测试用例, 漏洞利用检测, 版权保护, 逆向工具, 金融科技