Die Erkennung von Finanzbetrug ist durch extremes Klassenungleichgewicht geprägt: Betrügerische Transaktionen machen in hochvolumigen Zahlungsströmen typischerweise weniger als $2\%$ aus. Herkömmliche Oversampling-Methoden wie SMOTE verzerren komplexe multimodale Verteilungen über gemischte kontinuierliche und kategoriale Merkmale.
Dieses Projekt implementiert ein reproduzierbares Deep Active Learning-Framework, evaluiert auf dem anerkannten IEEE-CIS Fraud Detection-Benchmarkdatensatz.
Architektur und Pipeline
flowchart LR
Raw[Ungleichgewichtete Tabellendaten] --> GAN[Conditional WGAN-GP]
GAN --> Synthetic[Synthetischer Betrugspool]
Synthetic --> RL[PPO Reinforcement Learning Agent]
RL -->|Belohnung: Delta AUC-PR| Decision{Auswahl / Verwerfung}
Decision --> Balanced[Optimierter Trainingsdatensatz]
Balanced --> XGB[XGBoost Klassifikator]
1. Conditional WGAN-GP (Synthesizer)
- Nutzt ein Wasserstein GAN mit Gradient Penalty (WGAN-GP) zur Gewährleistung der 1-Lipschitz-Stetigkeit und zur Vermeidung von Mode Collapse auf Tabellendaten.
- Verarbeitet kategoriale Variablen über temperaturangepasstes Gumbel-Softmax, was einen stabilen Gradientenfluss durch den Diskriminator ermöglicht.
2. Stichprobenfilterung via Reinforcement Learning (PPO)
- Anstelle einer unbedachten Übernahme aller synthetischen Stichproben bewertet ein Proximal Policy Optimization (PPO)-Agent jeden Batch sequentiell.
- Eine maßgeschneiderte Gymnasium-Umgebung belohnt den Agenten basierend auf dem marginalen Performancegewinn:
- Das neuronale Netz lernt, Out-of-Distribution-Artefakte und Grenzrauschen zuverlässig zu verwerfen.
3. Gradient-Boosted-Klassifikator (XGBoost)
- Dient als primäre Klassifikationsengine aufgrund seiner erwiesenen Robustheit gegenüber zeitlichem Concept Drift in Transaktionsströmen.
Benchmark-Ergebnisse (Temporaler Holdout-Test)
Evaluiert unter strikter chronologischer Trennung (Training: Monate 1–5, Test: Monat 6):
| Pipelinestrategie | n_train | n_fraud (train) | AUC-PR | AUC-ROC | F1-Score | Recall @ FPR=0.1% |
|---|---|---|---|---|---|---|
| Nur XGBoost (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 |
| Nur WGAN-GP | 614,615 | 128,959 | 0.6389 | 0.9021 | 0.5872 | 0.6743 |
| WGAN-GP + RL-Filter | 534,261 | 48,605 | 0.6721 | 0.9087 | 0.6143 | 0.7089 |