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, 数据科学, 机器学习, 欺诈检测, 访问控制, 资源验证, 逆向工具