sohansourab/fraud-detection-hybrid
GitHub: sohansourab/fraud-detection-hybrid
一个结合规则引擎和机器学习的混合欺诈检测系统,用于识别政府福利计划中的身份、劳工和医疗欺诈行为。
Stars: 0 | Forks: 0
# 🔍 基于混合 AI 的多领域欺诈检测系统
## 📋 概述
一个综合性的**混合欺诈检测系统**,结合了**确定性规则扫描**(16 条规则)和**基于 ML 的异常检测**,专为印度政府福利计划设计。该系统跨 3 个领域扫描受益人和交易数据,以识别欺诈模式并自动生成法律通知。
**方法:** 混合(确定性规则 + 机器学习)
## 🏗️ 系统架构
```
┌─────────────────────┐
│ Data Generation │
│ data_simulator.py │ ──> Synthetic data with fraud contamination
└─────────────────────┘
│
↓
┌─────────────────────────────────────────────────────────────┐
│ HYBRID DETECTION LAYER │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────────────────┐ ┌──────────────────────────┐ │
│ │ Rule-Based Scanner │ │ ML Anomaly Detector │ │
│ │ audit_scanner.py │ │ ml_anomaly_detector.py │ │
│ │ (16 Rules) │ │ (IsolationForest) │ │
│ └──────────────────────┘ └──────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│ │
↓ ↓
┌─────────────────────┐ ┌─────────────────────┐
│ fraud_report.json │ │ ml_anomaly_report │
│ (1,776 flagged) │ │ (502 anomalies) │
└─────────────────────┘ └─────────────────────┘
│
↓
┌─────────────────────┐
│ show_cause_notice │
│ (PDF Generator) │ ──> 1,776 Legal Notices
└─────────────────────┘
```
## 🎯 检测规则(共 16 条)
### 领域 1:民事登记(身份欺诈) - 5 条规则
| 规则 | 模式 | 逻辑 | 风险评分 |
|------|---------|-------|------------|
| **RULE_001** | 无效手机号 | 手机号 = 9999999999 | 25 |
| **RULE_002** | 未成年工卡 | 年龄 < 18 且持有工卡 | 25 |
| **RULE_003** | 可疑年龄 | 年龄 > 100 岁 | 25 |
| **RULE_004** | 超级大家庭 | 家庭成员 > 15 人 | 25 |
| **RULE_013** | 克隆检测 | 手机号被 >3 人共用 | 30 |
### 领域 2:MGNREGA 劳工欺诈 - 5 条规则
| 规则 | 模式 | 逻辑 | 风险评分 |
|------|---------|-------|------------|
| **RULE_005** | 非人类工作量 | 每周期工作天数 > 15 | 25 |
| **RULE_006** | 幽灵项目 | 工作代码以 _000 结尾 | 25 |
| **RULE_007** | 工资盗窃 | 金额 ≠ 天数 × 工资率 | 25 |
| **RULE_008** | 免费送钱 | 天数 = 0 且 金额 > 0 | 25 |
| **RULE_017** | 花名册卡特尔 | >80% 的名册中出现相同工人 | 35 |
### 领域 3:PM-JAY 医疗欺诈 - 4 条规则
| 规则 | 模式 | 逻辑 | 风险评分 |
|------|---------|-------|------------|
| **RULE_009** | 穿越时空 | 出院日期 < 入院日期 | 25 |
| **RULE_010** | 生物学不匹配 | 男性 + 子宫切除术 | 25 |
| **RULE_011** | 大额虚报 | 普通病房 > 50,000 卢比 | 25 |
| **RULE_012** | 黑名单医院 | 医院ID = HOSP_999 | 25 |
| **RULE_021** | 手续造假工厂 | 同一手术 >50 次/月 | 35 |
### 跨领域分析 - 1 条规则
| 规则 | 模式 | 逻辑 | 风险评分 |
|------|---------|-------|------------|
| **RULE_025** | 多计划速度异常 | 在 2 个以上领域被标记 | 40 |
## 🤖 ML 异常检测层
**算法:** IsolationForest(无监督学习)
**目的:** 检测不符合已知欺诈模式的统计异常值
**使用的特征:**
- **民事登记:** 年龄、手机号模式、家庭规模、工卡持有情况
- **MGNREGA:** 工作天数、工资率、日均金额、工卡使用频率
- **PM-JAY:** 理赔金额、住院时长、医院频率、手术类型
**结果:**
- 民事登记:100 个异常 (5.00%)
- MGNREGA:252 个异常 (5.01%)
- PM-JAY:150 个异常 (5.00%)
- **总计:502 个统计异常**
## 📁 项目结构
```
promptpirates/
├── data/
│ ├── beneficiaries.csv # 2,000 beneficiaries
│ ├── transactions_mgnrega.csv # 5,027 labor transactions
│ └── transactions_pmjay.csv # 3,000 medical claims
│
├── output/
│ ├── reports/
│ │ ├── fraud_report.json # Rule-based scan results
│ │ ├── ml_anomaly_report.json # ML anomaly results
│ │ └── fraud_ground_truth.json # Expected fraud counts
│ └── notices/
│ ├── civil_registry/ # 296 PDF notices
│ ├── mgnrega_labor/ # 1,118 PDF notices
│ └── pm-jay_medical/ # 362 PDF notices
│
├── audit_scanner.py # Rule-based fraud scanner (16 rules)
├── ml_anomaly_detector.py # ML anomaly detector
├── data_simulator.py # Synthetic data generator
├── show_cause_notice.py # PDF legal notice generator
├── requirements.txt # Python dependencies
├── FRAUD_DETECTION_VALIDATION.md # Accuracy analysis
└── README.md # This file
```
## 📊 检测结果
### 基于规则的检测
| 指标 | 数值 |
|--------|-------|
| **扫描记录总数** | 10,000 |
| **标记总数** | 1,776 |
| **总标记次数** | 2,244 |
| **检测率** | 17.76% |
#### 按领域
| 领域 | 记录数 | 标记数 | 比率 |
|--------|---------|---------|------|
| 民事登记 | 2,000 | 296 | 14.80% |
| MGNREGA 劳工 | 5,027 | 1,118 | 22.24% |
| PM-JAY 医疗 | 3,000 | 362 | 12.07% |
#### 按规则
| 规则 | 标记数 | 规则 | 标记数 |
|------|-------|------|-------|
| RULE_001 | 94 | RULE_009 | 89 |
| RULE_002 | 65 | RULE_010 | 31 |
| RULE_003 | 34 | RULE_011 | 139 |
| RULE_004 | 84 | RULE_012 | 114 |
| RULE_005 | 302 | RULE_013 | 107 |
| RULE_006 | 267 | RULE_017 | 网络* |
| RULE_007 | 409 | RULE_021 | 网络* |
| RULE_008 | 210 | RULE_025 | 99 |
*基于网络的规则嵌入在交易标记中
#### 风险分布
| 风险等级 | 评分范围 | 数量 | 优先级 |
|------------|-------------|-------|----------|
| **严重** | 76-100 | 18 | 立即行动 |
| **高** | 51-75 | 137 | 紧急调查 |
| **中** | 26-50 | 127 | 需要审查 |
| **低** | 1-25 | 1,494 | 常规跟进 |
## 🚀 快速开始
### 前置条件
```
Python 3.13+
pip install pandas fpdf2 Faker scikit-learn numpy
```
### 安装
```
git clone https://github.com/yourusername/promptpirates.git
cd promptpirates
pip install -r requirements.txt
```
### 使用
**步骤 1:生成合成数据**
```
python data_simulator.py
```
输出:`data/beneficiaries.csv`, `transactions_mgnrega.csv`, `transactions_pmjay.csv`
**步骤 2:运行基于规则的欺诈扫描器**
```
python audit_scanner.py
```
输出:`output/reports/fraud_report.json`
**步骤 3:运行 ML 异常检测器**
```
python ml_anomaly_detector.py
```
输出:`output/reports/ml_anomaly_report.json`
**步骤 4:生成法律通知**
```
python show_cause_notice.py
```
输出:`output/notices/{domain}/*.pdf`
## 🔬 验证与准确性
**检测准确率:** 99.1%(根据真值验证)
| 规则 | 预期 | 检测到 | 准确率 |
|------|----------|----------|----------|
| RULE_001-012 | 1,850 | 1,833 | 99.1% |
| RULE_013 | ~100 | 107 | ✅ |
| RULE_017 | ~200 | 基于卡特尔 | ✅ |
| RULE_021 | ~150 | 183 | ✅ |
| RULE_025 | 动态 | 99 | ✅ |
详细分析请参阅 [FRAUD_DETECTION_VALIDATION.md](FRAUD_DETECTION_VALIDATION.md)。
## 💡 核心特性
### 1. 混合检测
- ✅ **确定性规则:** 捕获已知欺诈模式
- ✅ **ML 异常:** 检测未知统计异常值
- ✅ **最佳实践:** 调查被两个系统同时标记的记录
### 2. 多领域支持
- ✅ 身份欺诈(民事登记)
- ✅ 劳工欺诈(MGNREGA)
- ✅ 医疗欺诈(PM-JAY)
- ✅ 跨领域关联
### 3. 网络分析
- ✅ 手机号共享圈(克隆检测)
- ✅ 工人卡特尔(名册卡特尔)
- ✅ 医院工厂(手续造假工厂)
- ✅ 多计划欺诈者(速度异常)
### 4. 自动通知生成
- ✅ 特定领域模板
- ✅ 基于风险的优先级排序
- ✅ 法律框架合规
- ✅ 证据文档
## 🎯 应用场景
1. **政府审计员:** 跨福利计划的自动化欺诈检测
2. **决策者:** 识别系统性欺诈模式以进行政策改革
3. **执法部门:** 基于证据的起诉,附带记录在案的违规行为
4. **研究人员:** 研究公共福利系统中的欺诈模式
5. **ML 训练:** 用于监督学习模型的标记数据集
## 📈 未来增强
### 第二阶段:多代理架构(计划中)
- ✅ 具备 LLM 推理能力的 BaseAgent
- ✅ 领域特定代理(CivilRegistryAgent, MGNREGAAgent, PMJAYAgent)
- ✅ 用于编排的 SupervisorAgent
- ✅ 跨领域关联引擎
- ✅ 基于审计员反馈的主动学习
### 额外规则(第 2 和 3 层)
- Rule 14:重复 Aadhaar 模式
- Rule 15:地理上的不可能性
- Rule 16:快速家庭扩张
- Rule 18:支付速度异常
- Rule 19:工资率套利
- Rule 20:休眠账户激活
- Rule 22:再住院套利
- Rule 23:地理距离异常
- Rule 24:理赔时间模式
- Rule 26:家庭网络欺诈
- Rule 27:地址聚类
- Rule 28:突然死亡悖论
## 🤝 贡献
欢迎贡献!感兴趣的领域:
- 额外的欺诈规则
- 新的 ML 算法(自编码器、图神经网络)
- 真实世界数据集集成
- 性能优化
- 多代理系统实现
**⚠️ 免责声明:** 这是一个使用合成数据的演示系统。用于生产环境时,请与实际的政府数据库和法律框架集成。
标签:Apex, Python, Scikit-learn, 云计算, 交易监控, 印度政府福利, 反欺诈系统, 受益人验证, 合成数据, 合规科技, 孤立森林, 异常检测, 数据审计, 数据科学, 无后门, 机器学习, 混合AI, 混合欺诈检测, 确定性规则, 社会福利诈骗, 自动法律通知, 规则引擎, 资源验证, 逆向工具, 金融风控