Yogesh942134/Mini-Project-VI

GitHub: Yogesh942134/Mini-Project-VI

一个基于Streamlit的MGNREGA数据欺诈检测系统,结合规则评分与孤立森林模型进行风险评分与可视化。

Stars: 0 | Forks: 0

# MGNREGA 欺诈检测系统 一个基于 Streamlit 的仪表板,用于检测 MGNREGA(莫罕达斯·甘地国家农村就业保障法案)数据中的潜在欺诈行为,采用基于规则的评分与机器学习异常检测相结合的混合方法。 ## 功能特性 - **混合欺诈检测**:结合基于规则的专家系统与孤立森林(Isolation Forest)机器学习模型 - **现代深色界面**:采用渐变风格的定制化界面 - **交互式可视化**:使用 Plotly 进行风险分析图表展示 - **风险评分**:每个地区都会获得一个复合欺诈概率评分(0-1) - **数据导出**:可下载包含欺诈评分的处理结果 ## 工作原理 ### 基于规则的标记 系统从六个关键领域标记异常: | 标记 | 条件 | 依据 | |------|-----------|-----------| | 工人比例 | 工人数量 > 1.5 × 工作卡数量 | 可能存在虚假/幽灵工人 | | 工资偏差 | 实际工资 >1.5 倍或 <0.5 倍平均值 | 工资操纵 | | 完成比例 | >80% 的家庭完成 100 天 | 目标不切实际 | | 女性比例 | <20% 或 >80% | 偏离规定的 33% 参与率 | | 单位工作量成本 | 高于 95 百分位 | 项目成本虚高 | | 支付延迟 | <50% 的付款在 15 天内完成 | 违反 MGNREGA 指南 | ### 机器学习模型 - **算法**:孤立森林(Isolation Forest,无监督异常检测) - **污染率**:5%(预计约 5% 的数据为异常) - **特征**:从原始数据中构建的 6 个比率/指标 ### 最终评分计算 ``` final_probability = 0.6 * ML_score + 0.4 * rule_based_score ``` ## 安装 ### 先决条件 - Python 3.9 或更高版本 - pip 包管理器 ### 安装设置 1. 克隆或下载本仓库: git clone cd mini-project-vi 2. 创建虚拟环境: python -m venv .venv 3. 激活虚拟环境: # Windows .venv\Scripts\activate # Linux/Mac source .venv/bin/activate 4. 安装依赖: pip install -r requirements.txt ## 使用方法 1. 运行 Streamlit 应用: streamlit run app.py 2. 打开浏览器访问 `http://localhost:8501` 3. 上传包含 MGNREGA 地区数据的 CSV 文件 4. 查看欺诈分析结果并下载处理后的数据 ### 必需的 CSV 列 输入 CSV 必须包含以下列: | 列名 | 描述 | |--------|-------------| | district_name | 地区名称 | | Total_No_of_Workers | 总雇佣工人数量 | | Total_No_of_JobCards_issued | 发放的工作卡数量 | | Wages | 支付的总工资 | | Persondays_of_Central_Liability_so_far | 至今生成的人日数 | | Average_Wage_rate_per_day_per_person | 每人每日平均工资 | | Total_No_of_HHs_completed_100_Days_of_Wage_Employment | 完成 100 天工资就业的家庭数量 | | Total_Households_Worked | 总工作家庭数 | | Total_Exp | 总支出 | | Number_of_Completed_Works | 完成工程数量 | | Women_Persondays | 女性人日数 | | percentage_payments_gererated_within_15_days | 15 天内付款比例(%) | ## 项目结构 ``` mini-project-vi/ ├── app.py # Main Streamlit application ├── preprocess.py # Data processing and ML model ├── utils.py # Visualization functions ├── requirements.txt # Python dependencies ├── .gitignore # Git ignore rules └── README.md # This file ``` ## 输出指标 系统为每个地区生成三个关键输出: 1. **fraud_score**:触发的基于规则标记的总和(0-6) 2. **model_probability**:机器学习模型异常评分(0-1) 3. **final_probability**:综合风险评分(0-1) ## 可视化图表 - **Top 10 高风险地区**:横向条形图展示风险最高的地区 - **风险分布**:环形图展示高风险/中风险/低风险类别分布 ## 风险等级 | 等级 | 评分范围 | 颜色 | |----------|-------------|-------| | 高风险 | > 0.7 | 红色 | | 中风险 | 0.4 - 0.7 | 橙色 | | 低风险 | <= 0.4 | 绿色 | ## 许可证 本项目仅用于教育目的。 ## 贡献 欢迎提交问题与改进建议。
标签:Apex, DFIR, Kubernetes, MGNREGA, Plotly, Python, Streamlit, 云计算, 代码示例, 仪表盘, 供应链监督, 公共资金监控, 公开数据, 关键词SEO, 前端界面, 印度农村就业保障计划, 孤立森林, 异常检测, 数据分析, 数据导出, 无后门, 机器学习, 概率模型, 欺诈检测, 治理与审计, 规则引擎, 访问控制, 逆向工具, 风险评分