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. 保存训练好的模型和评估指标

## 项目结构
```
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, 不平衡分类, 数据科学, 机器学习, 自动化流水线, 资源验证, 逆向工具, 风控反欺诈