Online Payment Fraud
Deteksi Fraud Transaksi Pembayaran Online pada 6,36 Juta Data Menggunakan XGBoost & LightGBM
Analisis dan pemodelan machine learning deteksi fraud pada 6.362.620 transaksi pembayaran online (Kaggle). Menghadapi class imbalance ekstrem (0,129% fraud), proyek ini membandingkan XGBoost dan LightGBM dengan strategi bobot kelas (scale_pos_weight = 336,49). Model XGBoost keluar sebagai pemenang dengan PR-AUC 0,9361, Recall 98,30%, dan F1-Score 0,6873.
Business Understanding & Strategic Context
Lonjakan transaksi digital menimbulkan risiko fraud finansial yang masif. Sistem rule-based konvensional (isFlaggedFraud) terbukti gagal total karena hanya mampu mendeteksi 16 dari 8.213 kasus fraud (<0,2%). Dibutuhkan sistem machine learning yang mampu menangkap ≥98% fraud sekaligus meminimalkan pemblokiran transaksi sah (false positive).
Membangun model klasifikasi prediktif berlatensi rendah untuk mendeteksi transaksi fraud secara real-time pada lingkungan transfer dan penarikan tunai, mengoptimalkan metrik PR-AUC dan Recall fraud agar kerugian nasabah dan institusi ditekan semaksimal mungkin.
Tangible Business Impact
Target Users & Stakeholders
Dataset Specifications & Processing Pipeline
6.362.620 baris dan 11 kolom data transaksi bersih (0 missing value, 0 duplikat). Disaring menjadi 2.770.409 baris khusus transaksi TRANSFER & CASH_OUT.
Komparasi model Gradient Boosted Decision Trees: XGBoost vs LightGBM menggunakan pembobotan kelas scale_pos_weight tanpa distorsi data sintetis.
Key Variable Dimensions
Data Preprocessing & Feature Engineering Architecture
Data Cleansing & Filtering: Mengeliminasi kolom non-informatif (step, nameOrig, nameDest, isFlaggedFraud) dan memfilter hanya tipe TRANSFER dan CASH_OUT yang menjadi pembawa 100% kasus fraud.
Categorical Encoding: Menerapkan One-Hot Encoding pada kolom type sehingga menghasilkan variabel biner type_TRANSFER dengan CASH_OUT sebagai baseline.
Dataset Splitting: Pembagian data 80/20 train-test split dengan random_state=42 (Train: 2.216.327 data | Test: 554.082 data).
Cost-Sensitive Class Weighting: Penerapan parameter scale_pos_weight = 336,49 pada algoritma gradient boosting untuk mengompensasi rasio imbalance 1 : 774.
Comparative Model Benchmark: XGBoost vs LightGBM
(Scroll horizontally to inspect metrics →)| Model | Accuracy | Precision (Fraud) | Recall (Fraud) | F1-Score (Fraud) | ROC-AUC | PR-AUC (Decisive) | Verdict |
|---|---|---|---|---|---|---|---|
XGBoost (Winner) | 0.9973 (99.73%) | 0.5284 (52.84%) | 0.9830 (98.30%) | 0.6873 (68.73%) | 0.9983 | 0.9361 | Model Terpilih (PR-AUC 0.94) |
| LightGBM | 0.9867 (98.67%) | 0.1814 (18.14%) | 0.9854 (98.54%) | 0.3064 (30.64%) | 0.9836 | 0.2423 | False Positive Tinggi (FP: 7.321) |
Confusion Matrix Evaluation (Test Set: 554,082 Transaksi)
XGBoost (Optimal Model)
Keunggulan Kunci: XGBoost berhasil menekan false positive hingga 1.444 transaksi sah (menjaga kenyamanan nasabah), sambil mempertahankan penangkapan fraud di angka 98.30% (1.618 kasus fraud).
LightGBM (Baseline Model)
Evaluasi Kritis: Meskipun Recall mencapai 98.54%, LightGBM memblokir 7.321 nasabah sah tanpa dasar, menyebabkan drop Precision ke 18.14% dan PR-AUC jatuh ke 0.2423.
Empirical Discoveries & Key Findings
100% Kasus Fraud Hanya Ada di TRANSFER & CASH_OUT
Seluruh kasus fraud terbagi rata antara TRANSFER (4.097 kasus) dan CASH_OUT (4.116 kasus). Tipe CASH_IN (1,39M), PAYMENT (2,15M), dan DEBIT (41K) sama sekali memiliki 0 kasus fraud, memungkinkan data filtering terarah.
Kegagalan Total Sistem Rule-Based Lama (isFlaggedFraud)
Fitur isFlaggedFraud hanya menandai 16 transaksi dari 8.213 fraud sebenarnya. Sistem rule-based statis gagal mendeteksi pola penipuan terstruktur sehingga kolom ini dieliminasi.
Pola "Drain-to-Zero" (Money Mule Cash-Out)
Pada banyak kasus fraud terverifikasi, jumlah amount persis sama dengan seluruh saldo awal pengirim (oldbalanceOrg), menyebabkan saldo akhir langsung Rp 0 — indikasi pengurasan rekening korban ke akun perantara.
Keunggulan Telak XGBoost atas LightGBM pada PR-AUC
Meskipun keduanya mencapai recall ≥98%, LightGBM menghasilkan 7.321 alarm palsu (Precision 18,14%), sedangkan XGBoost menekan alarm palsu menjadi 1.444 (Precision 52,84% & F1 0,6873).
Actionable Strategic Recommendations
Deploy model XGBoost sebagai scoring engine utama transaksi online untuk tipe TRANSFER dan CASH_OUT.
Menjaring 98,3% potensi fraud sebelum dana keluar dari sistem perbankan dengan tingkat false alarm minimal.
Atur ambang batas keputusan probabilitas (decision threshold) sesuai selera risiko institusi (misal: threshold ketat untuk amount > Rp 50 juta).
Fleksibilitas kontrol trade-off antara kenyamanan nasabah dan mitigasi kerugian aset.
Tambahkan fitur selisih mutasi saldo (oldbalance - newbalance - amount) dan flag rekening tujuan baru.
Meningkatkan F1-score ke atas 0.75 dan mempercepat deteksi jaringan rekening penampung (mule account).
CRISP-DM Standard Methodology Execution
Business Understanding
Mengidentifikasi kerugian fraud transaksi digital dan kelemahan sistem rule-based konvensional.
Data Understanding
Eksplorasi dataset 6,36 juta baris transaksi pembayaran online tanpa missing value dan duplikat.
Data Preparation
Penyaringan data berorientasi fraud, One-Hot Encoding, dan penyiapan pembobotan kelas.
Modeling
Pelatihan dan komparasi model XGBoost dan LightGBM menggunakan Colab GPU.
Evaluation
Evaluasi performa kedua model pada 554.082 data uji menggunakan kurva PR-AUC dan Confusion Matrix.
Deployment
Penyusunan arsitektur integrasi scoring engine anti-fraud dan roadmap optimasi lanjutan.