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, 混合欺诈检测, 确定性规则, 社会福利诈骗, 自动法律通知, 规则引擎, 资源验证, 逆向工具, 金融风控