Mahi-bot/Credit-Card-Fraud-Detection-Model-Using-ML

GitHub: Mahi-bot/Credit-Card-Fraud-Detection-Model-Using-ML

一个使用XGBoost和SMOTE构建的信用卡欺诈检测模型,旨在高效识别高度不平衡数据集中的欺诈交易。

Stars: 0 | Forks: 0

# 基于XGBoost的信用卡欺诈检测 一个使用XGBoost进行机器学习的项目,旨在以高精确率和高召回率检测欺诈性信用卡交易。 ## 🎯 项目概述 本项目构建了一个预测模型,用于实时识别欺诈性信用卡交易。它运用了高级特征工程、类别不平衡处理(SMOTE)以及经过优化阈值选择的XGBoost分类器。 **关键性能指标:** - **精确率(Precision):** 75.68% - 在被标记为欺诈的100笔交易中,约76笔确实是欺诈 - **召回率(Recall):** 85.71% - 在实际发生的100起欺诈中,模型能捕捉到约86起 - **F1分数(F1 Score):** 80.38% - 精确率与召回率之间取得了良好的平衡 - **ROC-AUC:** 0.94+(因测试集划分而异) ## 📊 模型性能 | 指标 | 验证集 | 测试集 | |--------|-----------|------| | 准确率(Accuracy) | ~88% | ~88% | | 精确率(Precision) | 75.68% | ~76% | | 召回率(Recall) | 85.71% | ~86% | | F1分数(F1 Score) | 80.38% | ~81% | ## 🚀 快速开始 ### 前置条件 - Python 3.8+ - pip 或 conda ### 安装说明 1. 克隆代码仓库: ``` git clone https://github.com/yourusername/credit-card-fraud-detection.git cd credit-card-fraud-detection ``` 2. 安装依赖项: ``` pip install -r requirements.txt ``` 3. 下载数据集: - 获取 `creditcard.csv` 文件(可在Kaggle上找到) - 将其放置在项目根目录下 ### 使用方法 #### 训练模型 ``` python Xgboost.py ``` 此命令将执行以下操作: - 加载并预处理信用卡数据集 - 应用特征工程 - 使用SMOTE训练XGBoost模型 - 优化分类阈值 - 生成评估指标和可视化图表 - 将训练好的模型保存为 `xgb_fraud_model.pkl` #### 进行预测 ``` python predict.py --transaction '[{"Amount": 100.50, "V1": 0.5, "V2": -0.3, ...}]' ``` 或者在Python中使用预测脚本: ``` from predict import predict_fraud # 单一预测 result = predict_fraud(transaction_features) # 批量预测 results = predict_fraud(transactions_list) ``` ## 📁 项目结构 ``` credit-card-fraud-detection/ ├── Xgboost.py # Main model training script ├── predict.py # Inference script ├── test_plot.py # Test plotting utilities ├── creditcard.csv # Dataset (not included, download separately) ├── requirements.txt # Python dependencies ├── README.md # This file ├── LICENSE # MIT License ├── config.py # Configuration settings ├── Details.txt # Performance details ├── xgb_fraud_model.pkl # Trained model (generated after training) ├── confusion_matrix_validation.png # Generated visualization ├── confusion_matrix_test.png # Generated visualization └── roc_curve.png # Generated visualization ``` ## 🔧 技术细节 ### 特征工程 模型采用了高级特征工程技术: - **金额特征:** 平方、对数变换、根号变换及分箱处理 - **统计特征:** V列的均值、标准差、最大值、最小值、范围 - **交互特征:** 高方差检测、金额-方差交互 - **异常值检测:** 极端V值的计数 ### 模型配置 - **算法:** XGBoost分类器 - **基学习器数量:** 140 - **最大深度:** 7 - **学习率:** 0.05 - **子采样率:** 0.85 - **类别不平衡处理:** 对训练集应用SMOTE - **阈值:** 针对目标召回率(80-90%)和精确率(75-85%)进行优化 ### 数据处理流程 1. **训练-测试集划分:** 80-20 2. **训练-验证集划分:** 训练数据的70-30 3. **特征缩放:** 对金额特征使用StandardScaler 4. **SMOTE:** 仅应用于训练集,以防止数据泄露 ## 📈 输出结果 运行 `Xgboost.py` 后,将生成以下文件: - `xgb_fraud_model.pkl` - 用于推理的训练模型 - `confusion_matrix_validation.png` - 验证集混淆矩阵 - `confusion_matrix_test.png` - 测试集混淆矩阵 - `roc_curve.png` - ROC曲线 - `training_accuracy.png` - 训练集与验证集准确率曲线 ## 🎓 数据集 本项目使用了 **信用卡欺诈检测** 数据集,可在以下位置获取: - [Kaggle](https://www.kaggle.com/mlg-ulb/creditcardfraud) **数据集统计信息:** - **样本数量:** 约284,000笔交易 - **特征数量:** 30个(28个PCA变换特征 + 金额 + 时间) - **类别分布:** 严重不平衡(约0.17%欺诈) - **目标变量:** 'Class'(0=正常,1=欺诈) ## 🛡️ 安全与最佳实践 - ✅ 无硬编码凭据 - ✅ 基于环境的配置 - ✅ 正确的数据泄露预防 - ✅ 分层交叉验证 - ✅ 全面的错误处理 - ✅ 非交互式后端,兼容CI/CD流程 ## 🔍 模型可解释性 特征重要性可以从训练好的模型中提取: ``` import pickle model = pickle.load(open('xgb_fraud_model.pkl', 'rb')) feature_importance = model.feature_importances_ ``` ## 📝 许可证 本项目采用MIT许可证 - 详情请参阅 [LICENSE](LICENSE) 文件。 ## 🤝 贡献 欢迎贡献!请随时提交Pull Request。 ## 📧 联系与支持 如有问题或疑问,请在GitHub代码仓库中提交issue。 ## 🙏 致谢 - XGBoost开发团队 - Kaggle社区提供的数据集 - scikit-learn 和 imlearn 库 ## 🔄 版本历史 - **v1.0**(当前版本) - 初始发布,包含XGBoost模型、特征工程和阈值优化 **最后更新:** 2026年5月
标签:Apex, F1分数, ROC-AUC, SMOTE, XGBoost, 不平衡数据处理, 信用卡欺诈检测, 分类算法, 召回率, 实时检测, 性能调优, 数据科学, 数据预处理, 机器学习, 模型评估, 欺诈预防, 混淆矩阵, 特征工程, 特征缩放, 监督学习, 精确率, 资源验证, 逆向工具, 金融安全, 阈值优化