siddik3115/credit-card-fraud-detection

GitHub: siddik3115/credit-card-fraud-detection

基于机器学习的信用卡欺诈检测系统,通过SMOTE和XGBoost等技术解决高度不平衡交易数据中的欺诈识别问题。

Stars: 0 | Forks: 0

# 🛡️ 信用卡欺诈检测系统 用于检测欺诈交易的端到端 Machine Learning pipeline。 为实习项目演示而构建。 ## 📁 项目结构 ``` fraud_detection/ ├── app.py ← Streamlit dashboard (main entry point) ├── data_loader.py ← Data loading, scaling, SMOTE ├── eda.py ← Exploratory Data Analysis charts ├── models_ml.py ← Training, evaluation, SHAP, Isolation Forest ├── requirements.txt ← Python dependencies ├── models/ ← Saved model files (auto-created after training) └── README.md ``` ## 🚀 设置与运行 ### 1. 安装依赖 ``` pip install -r requirements.txt ``` ### 2. 下载 Dataset - 前往:https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud - 下载 `creditcard.csv` (144 MB) ### 3. 启动 Dashboard ``` cd fraud_detection streamlit run app.py ``` ### 4. 使用该应用 1. 通过侧边栏上传 `creditcard.csv` 2. 开启/关闭 SMOTE(建议:开启) 3. 点击 **Train Models** 4. 浏览所有标签页 ## 📊 使用的 ML 模型 | 模型 | 类型 | 备注 | |---------------------|---------------|----------------------------------| | Logistic Regression | 监督学习 | 基线模型,速度快,可解释 | | Random Forest | 监督学习 | Ensemble,处理非线性关系 | | XGBoost | 监督学习 | 通常性能最佳 | | Isolation Forest | 无监督学习 | 异常检测,无需标签 | ## 📈 评估指标 - **Recall** — 最重要(尽量减少漏报的欺诈) - **Precision** — 避免过多的误报 - **F1-Score** — Precision 和 Recall 的调和平均数 - **ROC-AUC** — 模型的整体判别能力 - **SHAP** — 模型的可解释性 ## ⚙️ 关键技术 - **SMOTE** — 合成少数类过采样技术,用于处理类别不平衡问题(欺诈占 0.17%) - **StandardScaler** — 对交易 Amount 进行归一化 - **SHAP values** — 解释哪些特征驱动了每次预测 - **Real-time scoring** — 通过 Dashboard 对单笔交易进行评分 ## 🎓 实习笔记 该数据集包含 **284,807 笔交易**,其中仅有 **492 起欺诈 (0.17%)** — 这是一个高度不平衡的问题。 SMOTE 在训练期间合成生成欺诈样本,以帮助模型学习欺诈模式。 在生产环境中,您会使用实时流处理(Kafka + 模型服务)而不是 Streamlit。
标签:Apex, API服务, AV绕过, FastAPI, Kubernetes, Streamlit, XGBoost, 数据科学, 机器学习, 欺诈检测, 访问控制, 资源验证, 逆向工具