upasanaa0/fraud-detection-system

GitHub: upasanaa0/fraud-detection-system

面向印度支付场景的生产级欺诈检测流水线,集成多种机器学习模型和规则引擎。

Stars: 0 | Forks: 0

# 🛡️ 欺诈检测流水线 一个生产级的机器学习流水线,用于检测印度的欺诈支付交易。 从 Colab notebook 转换为整洁、模块化的 VS Code 项目。 ## 项目结构 ``` fraud_detection/ ├── main.py ← Entry point (run this) ├── requirements.txt ├── .vscode/ │ ├── launch.json ← Run configs (F5 dropdown) │ └── settings.json ├── src/ │ ├── data_generator.py ← Synthetic data generation │ ├── feature_engineering.py ← All feature / flag functions │ ├── train.py ← Model training (XGBoost + IsolationForest) │ └── predict.py ← Inference + risk engine ├── data/ ← Created at runtime │ ├── train.csv │ ├── production.csv │ └── final_output.csv ← Final scored output └── model/ ← Created at runtime ├── xgb_model.pkl ├── iso_model.pkl └── feature_columns.json ``` ## 快速开始 ### 1. 创建并激活虚拟环境 ``` # Windows python -m venv venv venv\Scripts\activate # Mac / Linux python -m venv venv source venv/bin/activate ``` ### 2. 安装依赖项 ``` pip install -r requirements.txt ``` ### 3. 在 VS Code 中选择 Python 解释器 `Ctrl+Shift+P` → **Python: Select Interpreter** → 选择 `./venv` ### 4. 运行流水线 **选项 A – 终端(完整运行):** ``` python main.py ``` **选项 B – 快速开发运行(较小数据集):** ``` python main.py --train-rows 50000 --prod-rows 10000 ``` **选项 C – 单步运行:** ``` python main.py --step generate python main.py --step train python main.py --step predict ``` **选项 D – VS Code 调试器:** 按 `F5` 并从下拉菜单中选择一个配置。 ## 流水线步骤 | 步骤 | 描述 | |------|-------------| | **Generate** | 创建 50 万条训练 + 10 万条生产环境的合成交易 | | **Train** | 应用 SMOTE,训练 XGBoost + Isolation Forest,保存模型 | | **Predict** | 对生产数据进行评分,应用规则加成,输出决策 | ## 使用的特征 | 特征 | 描述 | |---------|-------------| | `state_changed` | 用户在不同的邦进行交易 | | `new_device_flag` | 来自以前未见过的设备的交易 | | `os_changed_flag` | 自上次交易以来操作系统版本发生变化 | | `device_location_risk` | 同时出现新设备和新位置 | | `impossible_travel_flag` | 连续交易之间的速度 > 500 km/h | | `velocity_risk_flag` | 最近 1 小时内交易次数 ≥5 或金额 >₹20,000 | | `amount_to_avg_ratio` | 交易金额与用户历史平均值的比率 | | `is_night` | 午夜至凌晨 6 点之间的交易 | | Region / Payment dummies | One-hot 编码的分类变量 | ## 输出 `data/final_output.csv` 包含每一笔生产交易,具有以下内容: | 列 | 描述 | |--------|-------------| | `fraud_score` | 原始集成分数(XGBoost 70% + IsoForest 30%) | | `final_risk_score` | 基于规则的加成后的分数(上限为 1.0) | | `decision` | **ALLOW** / **CHALLENGE** / **BLOCK** | ### 决策阈值 | 决策 | 分数范围 | |----------|-------------| | ALLOW | < 0.5 | | CHALLENGE | 0.5 – 0.79 | | BLOCK | ≥ 0.8 | ## 性能说明 完整运行(50 万 + 10 万行)根据您的机器配置需要 **10–25 分钟**。 使用 `--train-rows 50000 --prod-rows 10000` 进行快速测试运行(约 2–3 分钟)。
标签:Apex, AV绕过, FastAPI, Kubernetes, Python, REST API, RuPay, Scikit-learn, SMOTE, Streamlit, UPI, XGBoost, 不可能旅行检测, 分类模型, 印度支付, 反洗钱, 合成数据生成, 孤立森林, 异常检测, 数据不平衡处理, 无后门, 机器学习, 欺诈检测, 电子钱包, 网络金融犯罪, 设备指纹, 访问控制, 逆向工具, 速度检查, 配置错误, 金融科技, 集成学习, 风控系统, 风险引擎