Credit card fraud detection with ML/DL models and interpretability
Project description
تحلیل و شناسایی تقلب در معاملات مالی با یادگیری ماشین و یادگیری عمیق
پروژهٔ شناسایی تقلب در تراکنشهای کارت اعتباری با ترکیب مدلهای یادگیری ماشین کلاسیک، یادگیری عمیق جدولی (TabNet) و مدلهای ترکیبی XGBoost + TabNet و LightGBM + TabNet.
- مجموعهداده: Credit Card Fraud (ULB) — ۲۸۴٬۸۰۷ تراکنش، ۴۹۲ تقلب (۰٫۱۷۲٪)
- تقسیم داده: ۸۰٪ آموزش / ۱۵٪ اعتبارسنجی / ۵٪ آزمون
- تفسیرپذیری: SHAP، LIME، ELI5
روش کلی
- بارگذاری و تحلیل اکتشافی داده (EDA)
- پیشپردازش (RobustScaler) و SMOTE روی دادهٔ آموزش
- آموزش مدلهای پایه: Logistic Regression، Random Forest، XGBoost، LightGBM، SVM
- آموزش TabNet (شبکهٔ عمیق جدولی)
- ترکیب XGBoost+TabNet و LightGBM+TabNet با میانگین وزندار و Stacking
- ارزیابی، مقایسه و تفسیرپذیری
- ذخیرهٔ نتایج در
results/<timestamp>/
جزئیات مدلها: docs/methodology.md
ساختار پروژه
creditcard-fraud-xgb-tabnet/
├── main.py # نقطه ورود
├── src/ # کد پکیج fraud_detection
│ ├── config.py
│ ├── pipeline.py
│ ├── output.py
│ ├── data/ # بارگذاری و پیشپردازش
│ ├── eda/
│ ├── models/
│ ├── evaluation/
│ ├── visualization/
│ └── interpretability/
├── dataset/ # creditcard.csv (دانلود خودکار)
├── docs/
│ └── methodology.md
├── results/ # خروجی هر اجرا
│ └── YYYYMMDD_HHMMSS/
│ ├── run_info.json
│ ├── figures/
│ └── metrics/
├── requirements.txt
└── pyproject.toml
نصب
conda activate myenv
pip install -r requirements.txt
pip install -e .
پس از pip install -e . پوشهٔ fraud_detection.egg-info/ ساخته میشود (artifact نصب؛ در .gitignore است و نیازی به commit ندارد).
اجرا
conda activate myenv
python main.py
یا:
fraud-detection
هر اجرا یک پوشهٔ جدید با نام timestamp (مثلاً results/20250726_183045/) میسازد.
گزارش PDF از نتایج یک ران
برای دیدن همهٔ جداول و شکلها در یک فایل (بهترتیب پایپلاین):
conda activate myenv
python -m fraud_detection.reporting.generate_report --run 20260726_194158
خروجیها:
results/<run>/report/report.texresults/<run>/report/report.pdf- کپی آساندسترس:
reports/report_<run>.pdf
GPU
TabNet در صورت وجود CUDA روی GPU آموزش میبیند؛ در غیر این صورت روی CPU اجرا میشود.
داده
ترتیب بارگذاری در load_creditcard_dataset():
CREDITCARD_CSVیاdataset/creditcard.csvkagglehub(نیاز به احراز هویت Kaggle)- آینهٔ Zenodo
خروجیها
هر run در results/<timestamp>/ ذخیره میشود:
| مسیر | توضیح |
|---|---|
run_info.json |
اطلاعات اجرا (timestamp و مسیرها) |
figures/*.png |
نمودارها |
metrics/*.csv, metrics.json |
نتایج عددی و LaTeX |
مستندات
- docs/methodology.md — روششناسی، توضیح مدلها و جریان pipeline
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fraud_detection_xy-1.0.1.tar.gz.
File metadata
- Download URL: fraud_detection_xy-1.0.1.tar.gz
- Upload date:
- Size: 20.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd1fdeebd32858e851900f11a3a6819dddad7d1fd4466684ab3a4ffa861f0f30
|
|
| MD5 |
7eaf75a0e1ed4e7073ebe7458aa929d3
|
|
| BLAKE2b-256 |
85502c8aa692c2f5e0df60eaf30e7b3809e0d6e3bc3d328963b0e12a7955b9a8
|
File details
Details for the file fraud_detection_xy-1.0.1-py3-none-any.whl.
File metadata
- Download URL: fraud_detection_xy-1.0.1-py3-none-any.whl
- Upload date:
- Size: 26.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a62a1520d3c1b8da54b4e26834ef84965c7eab9eb9836f1c3aa52941c302ade
|
|
| MD5 |
99379d52f7e35ac23100a4d73770fad8
|
|
| BLAKE2b-256 |
122a2ae97aa843925d9d45a0b9ad18ebfb92cea8e79cd6e0859dd06b1ce6d320
|