Lakshay1805/fraudulent-transaction-detection
GitHub: Lakshay1805/fraudulent-transaction-detection
基于XGBoost的大规模金融欺诈交易检测后端系统,通过高级特征工程与阈值优化在极不平衡数据上实现高精确率与高召回率的均衡。
Stars: 0 | Forks: 0
# 🚨 欺诈交易检测系统
## 📌 概述
本项目是一个用于检测欺诈性金融交易的端到端机器学习系统。
它处理高度不平衡的数据(欺诈率约为 0.1%),并侧重于利用高级模型和阈值调优来同时优化召回率和精确率。
该系统包含:
- 特征工程 pipeline
- 模型训练与超参数调优
- 类别不平衡处理
- 分类的阈值优化
- 基于 Flask 的预测 API
## 📊 数据集
所使用的数据集规模庞大(约数百万条交易),并未包含在此 repository 中。
您可以在此处访问:[欺诈交易数据集](https://www.kaggle.com/datasets/chitwanmanchanda/fraudulent-transactions-data)
**数据集特征:**
- 高度不平衡:约 0.1% 的欺诈案例
- 金融交易记录
- 二分类问题(欺诈 / 非欺诈)
## 🏗️ 项目架构
`数据` → `特征工程` → `预处理` → `模型训练` → `阈值调优` → `评估` → `API 部署`
## 🧪 模型实验
通过交叉验证测试了多个模型:
| 模型 | F1 Score (CV) |
| ------------------- | --------------------------------- |
| Logistic Regression | ~0.05(由于不平衡导致极低) |
| Decision Tree | ~0.66 |
| Random Forest | ~0.71 |
| XGBoost | ~0.85(表现最佳) |
### 📉 初始结果(优化前)
高召回率但精确率极低(大量假阳性)
示例:
- **Recall:** ~0.99
- **Precision:** ~0.005
- **F1 Score:** ~0.01
👉 模型过于偏向于频繁预测为欺诈。
### ⚙️ 应用的优化技术
- SMOTE / 类别平衡实验
- `scale_pos_weight` 调优 (XGBoost)
- 使用 `RandomizedSearchCV` 进行超参数调优
- 阈值调优 (0.1 → 0.9)
- 基于 F1 score 优化而非准确率
## 🚀 最终模型表现
经过优化和阈值调优后:
| 指标 | 测试得分 |
| --------- | ---------- |
| Recall | 0.9233 |
| Precision | 0.8784 |
| F1 Score | 0.9003 |
✔ 平衡了高召回率与高精确率
✔ 相比基准模型有显著提升
✔ 适用于真实世界的欺诈检测用例
## 🧠 关键洞察
- 对于不平衡数据集,准确率具有误导性
- 单凭召回率无法取得良好效果。
- F1 score 在平衡精确率和召回率方面更为可靠
- 阈值调优在欺诈检测系统中至关重要
- XGBoost 显著优于传统模型
## 🛠️ 技术栈
- Python
- Pandas / NumPy
- Scikit-learn
- XGBoost
- Imbalanced-learn(SMOTE 实验)
- Flask(API)
- Joblib(模型序列化)
## 📡 API Endpoint
### 预测欺诈
**POST** `/predict`
**请求:**
```
{
"type": "CASH_OUT",
"amount": 1200.5,
"nameOrig": "C123456789",
"oldbalanceOrg": 5000.0,
"newbalanceOrig": 3800.5,
"nameDest": "M987654321",
"oldbalanceDest": 10000.0,
"newbalanceDest": 11200.5
}
```
**响应:**
```
{
"status": "success",
"prediction": [0],
"probability": [0.09]
}
```
## 📁 项目结构
```
fraud-detection-system/
│
│
├── app.py
├── routes.py
│
├── ml/
│ ├── predict.py
│ ├── feature_engineering.py
│ ├── train.py
│ ├── model_experimentation.py
│ ├── hyperparameter_tuning.py
│ ├── preprocessing.py
│
├── artifacts/
│ ├── model.pkl
│ ├── model_exp.pkl
│ ├── threshold.pkl
│
├── data/ (ignored, size is too large)
├── notebooks/
└── README.md
```
## 📌 未来改进
- 部署到云端 (AWS / Render / GCP)
- 添加监控以进行漂移检测
- 切换至 FastAPI 以获取更好的性能
- 添加数据库日志记录预测结果
## 🏁 结论
本项目演示了完整的 ML 生命周期:
从原始不平衡数据 → 优化的欺诈检测模型 → 可部署的 API 系统
标签:Apex, Flask, XGBoost, 数据工程, 机器学习, 欺诈检测, 逆向工具, 金融风控