Nour-Elrouby/Credit-Card-Fraud-Detection
GitHub: Nour-Elrouby/Credit-Card-Fraud-Detection
一个基于多种机器学习算法和采样策略的信用卡欺诈检测项目,通过完整的数据分析与模型对比流程解决高度不平衡数据集上的欺诈识别问题。
Stars: 0 | Forks: 0
# 信用卡欺诈检测
一个应用多种分类算法来检测信用卡欺诈交易的机器学习项目。该项目涵盖了探索性数据分析、类别不平衡处理、模型训练与评估。
## 数据集
- **来源:** [Kaggle - Credit Card Fraud Detection](https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud)
- **交易数量:** 284,807
- **欺诈案例:** 492(占所有交易的 0.172%)
- **特征:** 30 — V1 至 V28(PCA 转换后的特征)、`Amount`、`Time`、`Class`
- **目标:** `Class` — 1 表示欺诈,0 表示合法
## 项目结构
```
├── Final_Version.ipynb # Main notebook
├── creditcard.csv # Dataset (download from Kaggle)
└── README.md
```
## 工作流程
### 1. 数据探索
- 数据形状、信息、描述性统计
- 缺失值和重复值检查
- 类别分布
### 2. 探索性数据分析 (EDA)
- 欺诈与非欺诈分布(计数图)
- 交易金额和时间分布
- 选定特征的成对关系图
- 相关性热力图
- 特征与目标类别的相关性
### 3. 预处理
- 去除重复行
- 删除 `Time` 列
- 划分训练集/测试集(80/20,分层抽样)
- 使用 RobustScaler 对 `Amount` 进行缩放
### 4. 处理类别不平衡
| 技术 | 描述 |
|---|---|
| 欠采样 | RandomUnderSampler — 缩减多数类 |
| 过采样 | SMOTE — 生成合成的少数类样本 |
| 混合采样 | SMOTEENN — 将 SMOTE 与 Edited Nearest Neighbours 相结合 |
### 5. 模型
| 模型 | 类型 |
|---|---|
| Logistic Regression | 线性基线模型 |
| Decision Tree | 可解释的基于树的模型 |
| Random Forest | 集成模型 |
| XGBoost | 集成模型 |
每个模型都在所有三种采样策略下进行了训练和评估。
### 6. 评估指标
- Precision、Recall、F1-Score(欺诈类)
- AUC-ROC 分数
- 混淆矩阵
- ROC 曲线
## 结果
每个模型在所有采样策略下的比较结果均汇总在一个按 F1-Score 排序的汇总表中。表现最好的模型会在结论单元格中自动识别。
## 依赖项
```
pandas
numpy
matplotlib
seaborn
scikit-learn
imbalanced-learn
xgboost
```
## 主要发现
- 对于不平衡数据,Accuracy 具有误导性 — 因此改用 F1-Score 和 AUC-ROC
- SMOTE 和 SMOTEENN 在大多数情况下优于欠采样
- XGBoost 和 Random Forest 取得了最高的 AUC-ROC
- Logistic Regression 在应用 SMOTE 后是一个稳健的基线模型
- Decision Tree 具有可解释性,但性能弱于集成模型
## 未来改进
- 使用 GridSearchCV 进行超参数调优
- 阈值调优,以实现更好的 Precision/Recall 权衡
- 使用 `class_weight=balanced` 进行代价敏感学习
标签:Apex, Kaggle, Python, ROC曲线, SMOTE, XGBoost, 不平衡数据处理, 信用卡欺诈检测, 决策树, 分类算法, 反欺诈, 异常检测, 探索性数据分析(EDA), 数据科学, 数据预处理, 无后门, 机器学习, 模型评估, 特征工程, 网络安全, 资源验证, 逆向工具, 逻辑回归, 金融风控, 随机森林, 隐私保护