tanaygandhi1/payment-fraud-risk-analytics

GitHub: tanaygandhi1/payment-fraud-risk-analytics

基于636万笔金融交易数据的SQL分析项目,量化揭示传统规则欺诈检测系统的高漏报率并提出改进方案。

Stars: 0 | Forks: 0

# 支付欺诈与风险分析 **分析 636 万笔金融交易,揭示基于规则的欺诈检测系统中的关键漏洞** [![Kaggle Notebook](https://img.shields.io/badge/Kaggle-View%20Notebook-blue?logo=kaggle)](https://www.kaggle.com/code/tanaygandhi1/payment-fraud-risk-analytics-exposing-detection) ## 关键发现 | 发现 | 结果 | |---------|--------| | 基于规则的欺诈标记漏报率 | **99.8%**(在 8,213 起欺诈案件中仅检测到 16 起) | | 存在欺诈的交易类型 | **5 种中的 2 种**(仅限 TRANSFER 和 CASH_OUT) | | 最高风险区间 | **CASH_OUT 500K+**,欺诈率为 3.6%(基准的 18 倍) | | TRANSFER 中的余额异常率 | **95.24%** | | CASH_OUT 中的余额异常率 | **88.54%** | ## 业务背景 数字支付平台(Razorpay、PhonePe、Paytm)每天处理数百万笔交易。大多数欺诈检测系统依赖于简单的基于规则的标记——即标记任何超过特定金额阈值的交易。 **核心问题:简单的基于规则的欺诈标记在 636 万笔真实交易中效果如何?它在哪里失效?** ## 数据集 - **来源:** PaySim Synthetic Financial Dataset(ealaxi,Kaggle) - **规模:** 6,362,620 笔交易 - **周期:** 30 天(744 个小时步长) - **字段:** 交易类型、金额、发送方/接收方余额、欺诈标签 ## 分析结构 | 章节 | 描述 | |---------|-------------| | 1. 设置与数据加载 | 加载并验证 636 万笔交易 | | 2. 数据集概述 | 交易类型分布与交易量 | | 3. 按交易类型划分的欺诈情况 | TRANSFER (0.77%) 和 CASH_OUT (0.18%) 是仅有的欺诈类型 | | 4. 检测漏洞 | 基于规则的标记仅捕获了 8,213 起欺诈案件中的 16 起(漏报率 99.8%) | | 5. 更好的信号 | 金额分桶 + 余额对账异常检测 | | 6. 业务建议 | 针对支付风险团队的三项可执行建议 | ## 核心 SQL 查询 **按交易类型划分的欺诈率:** ``` SELECT type, COUNT(*) AS total_transactions, SUM(isFraud) AS fraud_count, ROUND(100.0 * SUM(isFraud) / COUNT(*), 4) AS fraud_rate_pct FROM transactions GROUP BY type ORDER BY fraud_rate_pct DESC; ``` **检测漏洞分析:** ``` SELECT SUM(isFraud) AS actual_fraud, SUM(isFlaggedFraud) AS system_flagged, SUM(CASE WHEN isFraud=1 AND isFlaggedFraud=1 THEN 1 ELSE 0 END) AS correctly_flagged, SUM(CASE WHEN isFraud=1 AND isFlaggedFraud=0 THEN 1 ELSE 0 END) AS fraud_missed FROM transactions; ``` **余额对账异常:** ``` SELECT type, COUNT(*) AS total, SUM(CASE WHEN ABS(oldbalanceOrg - amount - newbalanceOrig) > 1 THEN 1 ELSE 0 END) AS anomaly_count, ROUND(100.0 * SUM(CASE WHEN ABS(oldbalanceOrg - amount - newbalanceOrig) > 1 THEN 1 ELSE 0 END) / COUNT(*), 2) AS anomaly_rate_pct FROM transactions WHERE type IN ('TRANSFER', 'CASH_OUT') GROUP BY type; ``` ## 业务建议 1. **停止仅依赖金额阈值** —— 当前的标记仅能捕获 0.2% 的欺诈 2. **将检测重点仅放在 TRANSFER 和 CASH_OUT 上** —— 100% 的欺诈都发生在这 2 种类型中 3. **使用余额对账作为主要信号** —— 在 95% 的高风险交易中都存在该异常 ## 使用的工具 ![Python](https://img.shields.io/badge/Python-3.12-blue?logo=python) ![Pandas](https://img.shields.io/badge/Pandas-2.0-green?logo=pandas) ![SQL](https://img.shields.io/badge/SQL-SQLite-orange?logo=sqlite) ![Kaggle](https://img.shields.io/badge/Kaggle-Notebook-blue?logo=kaggle) *Tanay Gandhi | [LinkedIn](https://linkedin.com/in/tanaygandhi1) | [tanay.website](https://tanay.website)*
标签:SQL, 代码示例, 多线程, 数据分析, 欺诈检测, 系统审计, 逆向工具, 金融风控, 风控规则引擎