xvyasser/E-Wallet-Fraud-Detection-End-to-End-Data-Analytics-Project
GitHub: xvyasser/E-Wallet-Fraud-Detection-End-to-End-Data-Analytics-Project
端到端电子钱包欺诈检测分析项目,通过PostgreSQL数据仓库、SQL特征工程、欺诈评分引擎和Power BI仪表板,帮助风控团队监控、评分和调查可疑交易。
Stars: 0 | Forks: 0
# 💳 电子钱包欺诈检测仪表板
## 🚨 端到端欺诈分析项目
### PostgreSQL • SQL 特征工程 • 欺诈评分 • Power BI
**一个全栈分析项目,模拟金融科技欺诈团队如何监控、评分和调查可疑的电子钱包交易。**
    
## 📌 项目摘要
**电子钱包欺诈检测仪表板**是一个端到端的欺诈分析项目,旨在检测、评分和调查可疑的数字钱包交易。
该项目模拟了真实的金融科技欺诈情报工作流程:
```
Raw E-Wallet Transactions
↓
Cleaning & Validation
↓
PostgreSQL Data Warehouse
↓
Fraud Feature Engineering
↓
Fraud Scoring Engine
↓
Fraud Alerts
↓
Power BI Dashboard
```
最终输出是一个 **6 页的 Power BI 仪表板**,可帮助高管、欺诈分析师、风险团队和运营团队监控欺诈风险敞口并调查高风险行为。
## 🎯 业务问题
电子钱包平台每天处理海量的交易。欺诈可能以多种形式出现:
- ⚡ 高交易频率
- 🌍 不可能的旅行或可疑的位置移动
- 📱 多个钱包共用同一设备
- 🏪 商户滥用或可疑的商户行为
- 💸 异常巨大的交易金额
- 🕸️ 短时间内有大量收款人,暗示有洗钱或骡子账户活动
如果没有集中的欺诈仪表板,团队可能难以回答以下问题:
- 哪些交易存在风险?
- 应该优先审查哪些钱包?
- 哪些商户比较可疑?
- 欺诈热点集中在哪里?
- 有多少警报处于打开、高风险或紧急状态?
- 总体欺诈风险敞口是多少?
本项目通过创建从数据生成到 Power BI 报告的完整欺诈分析工作流程来解决这一问题。
## ✅ 项目目标
- 🏗️ 为电子钱包交易构建结构化的 PostgreSQL 数据仓库。
- 🧹 清洗、验证和转换原始交易数据。
- 🧠 使用 SQL 构建欺诈检测特征。
- 🚦 创建可解释的、基于规则的欺诈评分引擎。
- 🚨 为高风险和紧急交易生成欺诈警报。
- ⚡ 构建优化的 BI 视图以提升 Power BI 性能。
- 📊 设计专业的 6 页 Power BI 仪表板。
- 🔍 根据 PostgreSQL 查询验证仪表板指标。
## 🧰 工具与技术
| 领域 | 工具 |
|---|---|
| 🐍 数据生成 | Python, Faker |
| 🗄️ 数据库 | PostgreSQL |
| 🛠️ 数据库管理 | pgAdmin |
| 🧱 数据建模 | 星型模式, 事实表与维度表 |
| 🧠 欺诈逻辑 | SQL, PostgreSQL 存储过程, 窗口函数 |
| ⚡ BI 层 | PostgreSQL 视图与物化视图 |
| 📊 仪表板 | Power BI Desktop |
| 📐 报告逻辑 | DAX 度量值, 切片器, KPI 卡片 |
| 📝 文档 | GitHub README, PowerPoint 演示文稿 |
## 📦 数据集概述
本项目使用了一个模拟的大规模电子钱包数据集。
| 实体 | 预估数量 |
|---|---:|
| 👤 用户 | 500,000 |
| 🏪 商户 | 15,000 |
| 💳 交易 | 48.85M+ |
| 📅 交易周期 | 2025 |
| 🚦 风险等级 | 低, 中, 高, 紧急 |
该数据集包含钱包行为、商户活动、设备使用情况、时间戳、位置、交易金额以及与欺诈相关的模式。
## 🏛️ 数据架构
PostgreSQL 数据库被组织成多个 schema,以保持项目的清晰度和可扩展性。
```
staging → raw and cleaned imported data
ref → reference and mapping tables
dw → warehouse fact and dimension tables
fraud → fraud features, scores, alerts, and risk logic
bi → reporting-ready views for Power BI
audit → validation and audit support
```
### 🔁 端到端流水线
```
Python Data Generator
↓
Raw CSV Files
↓
PostgreSQL Staging Tables
↓
Cleaning & Validation Layer
↓
Data Warehouse Layer
↓
Fraud Feature Engineering
↓
Fraud Scoring Engine
↓
Fraud Alert Generation
↓
BI Reporting Views
↓
Power BI Dashboard
```
## 🧱 数据仓库设计
数据仓库遵循星型模式的设计风格。
### 主要事实表
| 表名 | 描述 |
|---|---|
| `dw.fact_transaction` | 经过清洗和验证的交易级记录 |
### 维度表
| 表名 | 描述 |
|---|---|
| `dw.dim_user` | 用户和钱包信息 |
| `dw.dim_merchant` | 商户画像和类别详情 |
| `dw.dim_device` | 设备信息 |
| `bi.dim_date` | 用于日期过滤的日历表 |
| `bi.dim_risk_band` | 用于仪表板过滤的风险等级维度 |
## 🧠 欺诈特征工程
欺诈特征是使用 SQL 和 PostgreSQL 窗口函数创建的。
### ⚡ 速度风险
检测短时间窗口内的异常活动。
示例:
- 15 分钟内的交易次数
- 1 小时内的交易次数
- 1 小时内的发送金额
### 🌍 地理风险
检测不可能或可疑的移动。
示例:
- 与上一次交易的距离
- 距离上一次交易的分钟数
- 短时间内的长距离移动
### 📱 设备风险
检测共享设备的行为。
示例:
- 链接到同一设备的钱包数量
- 多个用户重复使用的设备
### 🏪 商户风险
检测可疑的商户行为。
示例:
- 商户交易失败率
- 商户被标记交易率
- 商户风险指数
### 💸 金额风险
检测异常巨大的交易金额。
示例:
- 单笔巨额交易金额
- 一小时内的高总金额
### 🕸️ 收款人行为
检测类似拆分洗钱的模式。
示例:
- 一小时内的大量唯一收款人
- 快速向多个收款人汇款的钱包
## 🚦 欺诈评分逻辑
每笔交易都会根据可疑行为获得各项组成部分的分数。
| 组件 | 含义 |
|---|---|
| `velocity_score` | 短时间内的高交易量或金额 |
| `geo_score` | 可疑的位置移动 |
| `device_score` | 共享设备风险 |
| `merchant_score` | 商户级别的风险指标 |
| `amount_score` | 异常大额交易 |
| `receiver_score` | 短时间内存在大量收款人 |
最终的欺诈得分是通过综合各组件的分数计算得出的。
```
Final Fraud Score =
Velocity Score
+ Geo Score
+ Device Score
+ Merchant Score
+ Amount Score
+ Receiver Score
```
### 风险等级分类
| 风险等级 | 含义 |
|---|---|
| 🟢 低 | 正常或低风险行为 |
| 🟡 中 | 可能需要监控的可疑行为 |
| 🟠 高 | 需要审查的强烈欺诈信号 |
| 🔴 紧急 | 需要立即关注的严重风险 |
高风险和紧急交易将被转化为欺诈警报。
## 🚨 欺诈警报逻辑
欺诈警报是根据满足以下条件的交易生成的:
```
risk_band IN ('High', 'Critical')
```
每个警报包含:
- 交易 ID
- 发送方钱包 ID
- 商户 ID
- 设备 ID
- 欺诈得分
- 风险等级
- 警报原因
- 警报状态
- 交易日期
- 警报优先级排序
### 警报原因
| 警报原因 | 含义 |
|---|---|
| 🌍 不可能的旅行 | 可疑的地理位置移动 |
| 🕸️ 拆分洗钱行为 | 短时间内存在大量收款人 |
| 📱 共享设备团伙 | 多个钱包关联到同一设备 |
| 🏪 商户滥用 | 可疑的商户行为 |
| ⚡ 高频行为 | 短时间内交易过于频繁 |
| 💸 异常交易金额 | 巨大的交易金额 |
## ⚡ BI 报告层
Power BI 连接到经过精心处理的 BI 视图,而不是原始交易表。
| BI 视图 | 用途 |
|---|---|
| `bi.fact_daily_fraud_kpi` | 用于高管报告的每日欺诈 KPI |
| `bi.alert_queue` | 警报级别的调查表 |
| `bi.high_risk_transactions` | 高风险和紧急交易详情 |
| `bi.merchant_risk_summary` | 商户级别的欺诈风险摘要 |
| `bi.user_risk_summary` | 钱包和客户风险摘要 |
| `bi.risk_band_distribution` | 整体风险等级分布 |
| `bi.dim_date` | 日期过滤 |
| `bi.dim_risk_band` | 风险等级过滤 |
这使得 Power BI 报告保持快速,并避免了扫描完整的原始交易数据集。
## 📊 Power BI 仪表板页面
最终的仪表板包含六个页面。
### 1️⃣ 高管欺诈概览
**目的:** 为领导层提供欺诈风险敞口的高层级视图。
**关键 KPI:**
- 总交易量
- 总金额
- 被标记的交易
- 标记率
- 被标记金额
- 紧急风险交易
**主要视觉对象:**
- KPI 卡片
- 欺诈趋势线
- 高风险与紧急风险图表
- 风险等级分布
### 2️⃣ 欺诈运营中心
**目的:** 帮助欺诈分析师监控警报并确定调查优先级。
**关键 KPI:**
- 总警报数
- 待处理警报
- 高风险警报
- 紧急警报
**主要视觉对象:**
- 按原因分类的警报
- 警报详情表
- 风险等级切片器
- 主要原因切片器
### 3️⃣ 商户风险分析
**目的:** 识别高风险商户和可疑的商户类别。
**关键指标:**
- 交易计数
- 总金额
- 被标记交易计数
- 标记率
- 平均欺诈得分
- 商户风险指数
**主要视觉对象:**
- 商户风险散点图
- 被标记次数最多的商户
- 高风险类别排行
- 商户详情表
### 4️⃣ 用户与设备风险
**目的:** 识别高风险钱包、可疑客户和共享设备模式。
**关键指标:**
- 钱包欺诈得分
- 交易计数
- 设备计数
- 收款人计数
- 标记率
- 总金额
**主要视觉对象:**
- 高风险钱包排行
- 收款人与标记率散点图
- 钱包/设备详情表
- KYC 和账户状态切片器
### 5️⃣ 地理空间欺诈分析
**目的:** 展示可疑活动的地理集中分布。
**关键指标:**
- 按省份划分的交易
- 按省份划分的标记率
- 紧急案例
- 欺诈热点排名
**主要视觉对象:**
- 地图视觉对象
- 省份风险排名
- 紧急案例集中度
- 热点表
### 6️⃣ 警报调查
**目的:** 支持警报分类和调查工作流程。
**关键指标:**
- 待处理警报
- 已关闭警报
- 总警报数
- 平均解决时间
- SLA 违规
**主要视觉对象:**
- 警报队列
- 警报状态卡片
- 随时间变化的警报
- 积压摘要
## 🧮 关键 DAX 度量值
```
Total Transactions =
SUM ( 'Daily Fraud KPI'[transaction_count] )
```
```
Flagged Transactions =
SUM ( 'Daily Fraud KPI'[flagged_transaction_count] )
```
```
Flagged Rate =
DIVIDE ( [Flagged Transactions], [Total Transactions] )
```
```
Total Alerts =
COUNTROWS ( 'Alert Queue' )
```
```
Open Alerts =
CALCULATE (
[Total Alerts],
'Alert Queue'[alert_status] = "Open"
)
```
```
High Alerts =
CALCULATE (
[Total Alerts],
'Alert Queue'[risk_band] = "High"
)
```
```
Critical Alerts =
CALCULATE (
[Total Alerts],
'Alert Queue'[risk_band] = "Critical"
)
```
## 🔍 验证过程
仪表板结果已通过 PostgreSQL 查询进行了验证。
验证检查包括:
- 总交易计数
- 月度交易分布
- 风险等级分布
- 警报计数
- 按原因分类的警报
- 商户级别指标
- 钱包级别指标
- 日期切片器行为
- 风险等级切片器行为
- 视觉对象交互测试
这确保了 Power BI 视觉对象与 PostgreSQL 报告层的数据保持一致。
## 🎨 仪表板设计原则
该仪表板采用了深色的金融科技欺诈运营主题进行设计。
### 颜色逻辑
| 风险级别 | 颜色 |
|---|---|
| 🟢 低 | 绿色 / 青色 |
| 🟡 中 | 黄色 |
| 🟠 高 | 橙色 |
| 🔴 紧急 | 红色 |
### 设计选择
- 用于高管指标的 KPI 卡片
- 用于趋势的折线图
- 用于排名的条形图
- 用于风险定位的散点图
- 用于调查详情的表格
- 用于交互性的切片器
- 用于提升性能的专用 BI 视图
## 💼 业务影响
### 👔 管理者
使用高管概览页面来监控欺诈风险敞口、标记率、紧急交易量和平台级趋势。
### 🕵️ 欺诈分析师
欺诈运营中心和警报调查页面来确定警报优先级,并调查高风险交易。
### 🧠 风险团队
使用商户风险、用户与设备风险以及地理空间分析页面来识别可疑商户、高风险钱包和欺诈热点。
### ⚙️ 运营团队
使用警报工作量和调查视图来监控待处理案件、积压情况和运营优先级。
## 🏆 项目成就
该项目成功交付了:
- ✅ 大规模模拟电子钱包交易数据集
- ✅ PostgreSQL 数据仓库
- ✅ 基于 SQL 的欺诈特征工程
- ✅ 可解释的欺诈评分引擎
- ✅ 欺诈警报生成逻辑
- ✅ 专用的 BI 报告视图
- ✅ 专业的 6 页 Power BI 仪表板
- ✅ 针对数据库查询的 KPI 验证
- ✅ 可作为作品集展示的欺诈分析案例研究
## 🗂️ 仓库结构
```
EWallet_Fraud_Detection_Project/
│
├── README.md
│
├── data_generation/
│ └── data_generator.py
│
├── sql/
│ ├── 01_create_schemas.sql
│ ├── 02_staging_tables.sql
│ ├── 03_reference_tables.sql
│ ├── 04_warehouse_tables.sql
│ ├── 05_load_fact_transactions.sql
│ ├── 06_fraud_feature_engineering.sql
│ ├── 07_fraud_scoring.sql
│ ├── 08_fraud_alerts.sql
│ └── 09_bi_views.sql
│
├── powerbi/
│ ├── EWallet_Fraud_Detection_Dashboard.pbix
│ └── ewallet_fraud_detection_powerbi_theme.json
│
├── screenshots/
│ ├── page_1_executive_overview.png
│ ├── page_2_fraud_ops_center.png
│ ├── page_3_merchant_risk.png
│ ├── page_4_user_device_risk.png
│ ├── page_5_geospatial_analysis.png
│ └── page_6_alert_investigation.png
│
├── presentation/
│ └── EWallet_Fraud_Detection_Project_Presentation.pptx
│
└── docs/
└── PROJECT_DOCUMENTATION.md
```
## 📎 说明
由于文件大小限制,本仓库不包含原始的生成数据集。
本仓库主要侧重于项目逻辑、SQL 流水线、Power BI 仪表板、截图和文档。
    
## 🚀 最终成果
**一个完整的欺诈分析解决方案,将原始的电子钱包交易转化为可操作的欺诈情报。**
标签:PostgreSQL, Power BI, SQL, 代码示例, 多线程, 数据分析, 欺诈检测, 测试用例, 系统审计, 逆向工具, 金融科技