anam-aleena/online_paymentfrauddetection_aleenaanam

GitHub: anam-aleena/online_paymentfrauddetection_aleenaanam

一个基于 XGBoost 与 Azure 的在线支付实时欺诈检测 ML 流水线,解决高误报与漏报问题。

Stars: 0 | Forks: 0

# 在线支付欺诈检测 — ML 流水线 [![Python](https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white)](https://python.org) [![Scikit-learn](https://img.shields.io/badge/Scikit--learn-1.4-orange?logo=scikit-learn&logoColor=white)](https://scikit-learn.org) [![XGBoost](https://img.shields.io/badge/XGBoost-2.0-red)](https://xgboost.readthedocs.io) [![Azure](https://img.shields.io/badge/Microsoft_Azure-Deployed-0078D4?logo=microsoftazure&logoColor=white)](https://azure.microsoft.com) [![License](https://img.shields.io/badge/License-MIT-brightgreen)](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, 不平衡数据处理, 云部署, 交易风控, 信用卡欺诈, 分类模型, 反欺诈, 在线支付欺诈检测, 实时欺诈检测, 异常检测, 支付安全, 数据预处理, 无后门, 机器学习, 模型评估, 混淆矩阵, 特征工程, 特征重要性, 生产环境部署, 过采样, 逆向工具, 金融科技, 风险评分