Financial fraud detection involves managing extreme class imbalance, where fraudulent transactions typically account for less than $2\%$ of high-volume payment streams. Standard oversampling techniques like SMOTE distort complex multi-modal distributions across mixed continuous and categorical transaction features.
This project delivers an end-to-end Deep Active Learning framework benchmarked on the large-scale IEEE-CIS Fraud Detection dataset.
Architectural Pipeline
flowchart LR
Raw[Imbalanced Tabular Data] --> GAN[Conditional WGAN-GP]
GAN --> Synthetic[Candidate Synthetic Fraud Pool]
Synthetic --> RL[PPO Reinforcement Learning Agent]
RL -->|Reward: Delta AUC-PR| Decision{Selective Accept/Reject}
Decision --> Balanced[Optimized Augmented Training Set]
Balanced --> XGB[XGBoost Classifier Engine]
1. Conditional WGAN-GP (Synthesizer)
- Employs a Wasserstein GAN with Gradient Penalty (WGAN-GP) to guarantee 1-Lipschitz continuity and prevent mode collapse on tabular data.
- Processes categorical attributes via temperature-annealed Gumbel-Softmax, enabling gradient flow through the discriminator while preserving discrete field boundaries.
2. Reinforcement Learning Sample Selection (PPO Filter)
- Instead of naïvely appending all synthetic samples, a Proximal Policy Optimization (PPO) agent evaluates each synthetic batch sequentially.
- Custom Gymnasium environment with sparse marginal performance rewards:
- The policy network learns to reject out-of-distribution hallucinations and borderline boundary noise.
3. Gradient Boosted Classifier (XGBoost)
- Serves as the primary classification engine due to proven robustness against non-stationary temporal concept drift in transaction streams.
Benchmark Results (Temporal Holdout Test)
Evaluated under strict chronological split (Train: Months 1–5, Test: Month 6):
| Pipeline Strategy | n_train | n_fraud (train) | AUC-PR | AUC-ROC | F1-Score | Recall @ FPR=0.1% |
|---|---|---|---|---|---|---|
| XGBoost Only (Baseline) | 500,071 | 14,615 | 0.5834 | 0.8912 | 0.5317 | 0.6234 |
| SMOTE Oversampling | 971,541 | 486,085 | 0.6112 | 0.8958 | 0.5589 | 0.6501 |
| WGAN-GP Only | 614,615 | 128,959 | 0.6389 | 0.9021 | 0.5872 | 0.6743 |
| WGAN-GP + RL Selection | 534,261 | 48,605 | 0.6721 | 0.9087 | 0.6143 | 0.7089 |