gopal092003/Credit-Card-Transactions-Fraud-Detection

GitHub: gopal092003/Credit-Card-Transactions-Fraud-Detection

基于 CatBoost 和 XGBoost 的模块化信用卡欺诈检测机器学习 pipeline,通过配置驱动完成从特征工程到模型评估的完整训练流程。

Stars: 0 | Forks: 0

# 信用卡欺诈检测 一个用于检测信用卡欺诈交易的机器学习 pipeline。该项目采用模块化架构,包含用于数据处理、特征工程、模型训练和评估的独立组件,便于维护、实验和扩展。 ## 概述 信用卡欺诈检测是一个高度不平衡的分类问题,在这个问题中,正确识别欺诈交易比最大化整体准确率更为重要。 本项目致力于构建一个可复现的机器学习工作流,用于处理交易数据、构建有意义的特征、训练分类模型,并使用适合不平衡数据集的指标来评估其性能。 ## 功能 - 模块化的机器学习 pipeline - 使用 YAML 进行配置驱动的实验 - 自动化特征工程 - 支持 CatBoost 和 XGBoost - 使用 Recall 和 F1 Score 进行模型评估 - 自动保存模型和指标 - 组织良好的项目结构,便于扩展 ## Pipeline 训练工作流包含以下几个阶段: 1. 加载交易数据 2. 执行特征工程 3. 对数据集进行预处理 4. 训练选定的模型 5. 评估模型性能 6. 保存训练好的模型和评估指标 ![ML Pipeline](https://static.pigsec.cn/wp-content/uploads/repos/cas/4c/4c4e27a354f27f151cb45665b7286135c7e9ab0f53608a80185022358ecdd7bd.png) ## 项目结构 ``` fraud-detection/ │ ├── configs/ │ └── config.yaml │ ├── data/ ├── notebooks/ ├── outputs/ │ ├── assets/ │ └── pipeline.png │ ├── src/ │ ├── data/ │ ├── features/ │ ├── models/ │ ├── pipelines/ │ └── utils/ │ ├── main.py ├── requirements.txt └── README.md ``` ## 特征工程 Pipeline 会创建多个特征来提升欺诈检测的效果,包括: - 交易时间特征 - 距离上一次交易的时间间隔 - 使用 Haversine 公式计算交易之间的地理距离 - 客户年龄 - 所选模型所需的额外预处理 ## 模型 本项目目前支持: ### CatBoost - 原生处理分类特征 - 所需预处理极少 - 适用于结构化的 tabular 数据集 ### XGBoost - 对编码后的分类特征进行梯度提升 - 灵活,广泛用于分类任务 无需修改训练 pipeline,即可通过配置文件选择模型。 ## 数据集 该数据集可在 Kaggle 上获取: https://www.kaggle.com/datasets/kartik2112/fraud-detection 下载后,请将文件放置在以下目录: ``` data/raw/ ├── fraudTrain.csv └── fraudTest.csv ``` ## 安装 克隆仓库: ``` git clone https://github.com/gopal092003/fraud-detection.git cd fraud-detection ``` 安装所需的依赖: ``` pip install -r requirements.txt ``` ## 运行项目 使用以下命令启动训练 pipeline: ``` python main.py ``` ## 配置 所有实验设置均通过以下文件管理: ``` configs/config.yaml ``` 您可以配置: - 模型选择 - 超参数 - 特征工程选项 - 训练设置 这使得复现实验和比较不同配置变得非常容易。 ## 输出 训练完成后,pipeline 会自动生成: ``` outputs/ ├── models/ │ └── trained_model.pkl │ └── metrics/ └── evaluation.json ``` ## 评估 由于欺诈交易仅占数据集的很小一部分,本项目优先考虑能更好反映欺诈检测性能的指标。 当前的评估指标包括: - Recall - F1 Score ## 未来改进 计划的一些增强功能包括: - MLflow 实验跟踪 - 使用 Optuna 进行超参数优化 - FastAPI 推理服务 - Docker 支持 - 模型版本控制 - 自动化数据验证 ## 作者 **Gopal Gupta** GitHub: https://github.com/gopal092003 ## 许可证 本项目基于 MIT License 授权。
标签:Apex, CatBoost, XGBoost, 不平衡分类, 数据科学, 机器学习, 自动化流水线, 资源验证, 逆向工具, 风控反欺诈