anam-aleena/online_paymentfrauddetection_aleenaanam
GitHub: anam-aleena/online_paymentfrauddetection_aleenaanam
一个基于 XGBoost 与 Azure 的在线支付实时欺诈检测 ML 流水线,解决高误报与漏报问题。
Stars: 0 | Forks: 0
# 在线支付欺诈检测 — ML 流水线
[](https://python.org)
[](https://scikit-learn.org)
[](https://xgboost.readthedocs.io)
[](https://azure.microsoft.com)
[](LICENSE)
## 问题陈述
在线支付欺诈每年给全球企业造成超过 **480 亿美元** 的损失。传统的基于规则的系统无法识别复杂的欺诈模式,并产生过多的误报,导致合法客户被拦截。本项目构建一个机器学习系统,从历史数据中学习欺诈模式,并在实时中以高精确度和低假阴性标记高风险交易。
## 结果
| 模型 | 准确率 | 精确率 | 召回率 | F1 分数 | ROC-AUC |
|---|---|---|---|---|---|
| 逻辑回归 | 0.91 | 0.87 | 0.83 | 0.85 | 0.94 |
| 随机森林 | 0.96 | 0.93 | 0.91 | 0.92 | 0.97 |
| **XGBoost** ✅ | **0.98** | **0.96** | **0.94** | **0.95** | **0.99** |
## 项目结构
```
online-payment-fraud-detection/
│
├── notebooks/
│ └── fraud_detection_pipeline.ipynb # Full EDA + training + evaluation
│
├── reports/
│ ├── confusion_matrix.png # Model evaluation heatmap
│ ├── feature_importance.png # Top fraud predictors
│ ├── roc_curve.png # ROC-AUC comparison
│ └── class_distribution.png # Target variable analysis
│
├── requirements.txt
└── README.md
```
## 机器学习流水线
```
Raw Transaction Data
→ Exploratory Data Analysis (EDA)
→ Data Cleaning & Preprocessing
→ Feature Engineering
→ Class Imbalance Handling
→ Model Training (LR / RF / XGBoost)
→ Cross-Validation & Evaluation
→ Best Model Selection
→ Deployment on Microsoft Azure
```
## 数据集特征
| 特征 | 类型 | 描述 |
|---|---|---|
| `step` | 数值 | 交易时间步(1 步 = 1 小时) |
| `type` | 类别 | 交易类型(CASH-IN、CASH-OUT、DEBIT、PAYMENT、TRANSFER) |
| `amount` | 数值 | 交易金额(本地货币) |
| `nameOrig` | 字符串 | 发起交易的客户 |
| `oldbalanceOrg` | 数值 | 交易前发送方余额 |
| `newbalanceOrig` | 数值 | 交易后发送方余额 |
| `nameDest` | 字符串 | 交易接收方 |
| `oldbalanceDest` | 数值 | 交易前接收方余额 |
| `newbalanceDest` | 数值 | 交易后接收方余额 |
| `isFraud` | 二元 | **目标 — 1 = 欺诈,0 = 合法** |
## EDA 的关键发现
- **仅 0.13% 的交易是欺诈** — 通过 SMOTE 加类别权重处理严重类别不平衡
- **TRANSFER 和 CASH-OUT 交易类型占 100% 的欺诈案例**
- **大额交易(> 200,000)欺诈比例显著偏高**
- **余额差异(oldBalance - newBalance ≠ amount)是欺诈最强信号**
- **特征工程** — 新增 `balanceOrigDiff` 和 `balanceDestDiff` 作为衍生特征,显著提升模型性能
## 使用的技术
- **探索性数据分析** — 分布图、相关性热力图、欺诈模式分析
- **数据预处理** — 标签编码、特征缩放(StandardScaler)、异常值分析
- **类别不平衡处理** — SMOTE 过采样 + XGBoost `scale_pos_weight`
- **特征工程** — 从原始列派生的余额差异特征
- **模型** — 逻辑回归(基线)、随机森林、XGBoost(最终)
- **评估** — 混淆矩阵、ROC-AUC、精确率-召回曲线、F1 分数
- **部署** — Microsoft Azure 上的 REST API(Microsoft Elevate × AICTE 实习)
## 快速开始
```
git clone https://github.com/anam-aleena/online_paymentfrauddetection_aleenaanam.git
cd online_paymentfrauddetection_aleenaanam
pip install -r requirements.txt
jupyter notebook notebooks/fraud_detection_pipeline.ipynb
```
## 技术栈
| 层级 | 工具 |
|---|---|
| 语言 | Python 3.10+ |
| 机器学习 | Scikit-learn、XGBoost |
| 数据 | Pandas、NumPy |
| 可视化 | Matplotlib、Seaborn |
| 类别不平衡处理 | imbalanced-learn(SMOTE) |
| 部署 | Microsoft Azure |
| 环境 | Jupyter Notebook |
## 商业影响
具有 **94% 召回率** 的模型意味着每 100 笔欺诈交易中,有 94 笔能被自动识别。以每笔欺诈平均损失 500 美元计算,该系统每 100 笔交易可防止约 **470 美元的损失** — 在大规模应用时为金融机构节省数百万美元。
## 作者
**Aleena Anam** — AI/ML 工程师与数据科学家
📧 anamaleena0@gmail.com
🔗 [LinkedIn](https://linkedin.com/in/aleena-anam-2056a4368) | [GitHub](https://github.com/anam-aleena)
*在 Microsoft Elevate × AICTE × Edunet Foundation 机器学习实习(2026 年 1–2 月)期间构建*
## 许可证
MIT 许可证 — 可自由使用、修改和分发。
标签:Apex, Azure, EDA, Microsoft Azure, MLOps, NoSQL, Python, ROC-AUC, ROC曲线, Scikit-learn, SMOTE, XGBoost, 不平衡数据处理, 云部署, 交易风控, 信用卡欺诈, 分类模型, 反欺诈, 在线支付欺诈检测, 实时欺诈检测, 异常检测, 支付安全, 数据预处理, 无后门, 机器学习, 模型评估, 混淆矩阵, 特征工程, 特征重要性, 生产环境部署, 过采样, 逆向工具, 金融科技, 风险评分