Back to Projects
Machine Learning
RESEARCH MONOGRAPH•2025•4 min read

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.

PythonXGBoostLightGBMPandasScikit-learnGoogle Colab GPU
PR-AUC (XGBoost)
0.9361
Superioritas separasi kurva Precision-Recall pada dataset imbalanced
Recall Fraud
98.30%
1.618 dari 1.646 transaksi fraud berhasil terjaring pada test set
F1-Score Fraud
0.6873
Keseimbangan presisi dan recall optimal (vs LightGBM 0.3064)
ROC-AUC
0.9983
Kemampuan pemisahan probabilitas kelas fraud sangat tinggi
Test Accuracy
99.73%
Akurasi keseluruhan pada 554.082 data uji
False Positives
1.444
Hanya 0,26% dari transaksi sah yang salah teridentifikasi

Business Understanding & Strategic Context

Problem Statement

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).

Strategic Objective

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

Menjaring 98,30% dari seluruh aksi fraud (1.618 dari 1.646 kasus pada test set) secara otomatis.
Mereduksi false positive secara drastis: XGBoost hanya memblokir 1.444 transaksi sah, jauh lebih presisi dibandingkan LightGBM yang memblokir 7.321 transaksi sah.
Mencegah kerugian finansial hingga ratusan miliar rupiah dari penipuan bernilai transaksi ekstrem (amount hingga 92,4 juta unit).

Target Users & Stakeholders

Fraud Risk & Compliance Teams
Payment Gateway Engineers
Fintech Security Operations Center (SOC)
Transaction Monitoring Specialists

Dataset Specifications & Processing Pipeline

Data Scope & Volume

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.

Algorithmic Methodology

Komparasi model Gradient Boosted Decision Trees: XGBoost vs LightGBM menggunakan pembobotan kelas scale_pos_weight tanpa distorsi data sintetis.

Key Variable Dimensions

amount (Nilai transaksi, right-skewed 0 – 92.445.520)
oldbalanceOrg & newbalanceOrig (Saldo awal dan akhir akun pengirim)
oldbalanceDest & newbalanceDest (Saldo awal dan akhir akun penerima)
type_TRANSFER (Fitur biner hasil One-Hot Encoding tipe transaksi)
isFraud (Target biner: 0 = Sah, 1 = Fraud)

Data Preprocessing & Feature Engineering Architecture

STEP 01

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.

STEP 02

Categorical Encoding: Menerapkan One-Hot Encoding pada kolom type sehingga menghasilkan variabel biner type_TRANSFER dengan CASH_OUT sebagai baseline.

STEP 03

Dataset Splitting: Pembagian data 80/20 train-test split dengan random_state=42 (Train: 2.216.327 data | Test: 554.082 data).

STEP 04

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 →)
ModelAccuracyPrecision (Fraud)Recall (Fraud)F1-Score (Fraud)ROC-AUCPR-AUC (Decisive)Verdict
XGBoost (Winner)
0.9973 (99.73%)0.5284 (52.84%)0.9830 (98.30%)0.6873 (68.73%)0.99830.9361Model Terpilih (PR-AUC 0.94)
LightGBM0.9867 (98.67%)0.1814 (18.14%)0.9854 (98.54%)0.3064 (30.64%)0.98360.2423False Positive Tinggi (FP: 7.321)

Confusion Matrix Evaluation (Test Set: 554,082 Transaksi)

XGBoost (Optimal Model)

PR-AUC: 0.9361
True Negative (Sah)
550,992
99.74% Transaksi Sah Lolos
False Positive (Alarm Palsu)
1,444
Hanya 0.26% Salah Blokir
False Negative (Fraud Lolos)
28
Hanya 1.70% Fraud Terlewat
True Positive (Fraud Tertangkap)
1,618
98.30% Recall Fraud

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)

PR-AUC: 0.2423
True Negative (Sah)
545,115
98.67% Transaksi Sah Lolos
False Positive (Alarm Palsu)
7,321
5.1x Lebih Banyak Alarm Palsu
False Negative (Fraud Lolos)
24
1.46% Fraud Terlewat
True Positive (Fraud Tertangkap)
1,622
98.54% Recall Fraud

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

Segmentasi Tipe8.213 / 8.213 Fraud

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.

Audit Aturan Lama< 0.2% Sensitivitas

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 AnomalioldbalanceOrg == amount

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.

Komparasi Model0.9361 vs 0.2423 PR-AUC

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

Target 1
Model Produksi Real-Time (XGBoost)

Deploy model XGBoost sebagai scoring engine utama transaksi online untuk tipe TRANSFER dan CASH_OUT.

Expected Business Outcome:

Menjaring 98,3% potensi fraud sebelum dana keluar dari sistem perbankan dengan tingkat false alarm minimal.

Target 2
Penerapan Threshold Tuning Dinamis

Atur ambang batas keputusan probabilitas (decision threshold) sesuai selera risiko institusi (misal: threshold ketat untuk amount > Rp 50 juta).

Expected Business Outcome:

Fleksibilitas kontrol trade-off antara kenyamanan nasabah dan mitigasi kerugian aset.

Target 3
Feature Engineering Lanjutan & Monitoring Saldo

Tambahkan fitur selisih mutasi saldo (oldbalance - newbalance - amount) dan flag rekening tujuan baru.

Expected Business Outcome:

Meningkatkan F1-score ke atas 0.75 dan mempercepat deteksi jaringan rekening penampung (mule account).

CRISP-DM Standard Methodology Execution

Cross-Industry Standard Process for Data Mining (CRISP-DM): This project rigorously applies the 6 standard industry phases of data science from business understanding through deployment.
Fase 1Problem & Objectives

Business Understanding

Mengidentifikasi kerugian fraud transaksi digital dan kelemahan sistem rule-based konvensional.

Evaluasi kelemahan sistem rule-based lama yang hanya menandai 16 transaksi dari 8.213 fraud.
Penetapan sasaran pemodelan: memaksimalkan Recall fraud (≥98%) dengan metrik evaluasi utama PR-AUC dan F1-Score.
Menentukan batas latensi inferensi deteksi transaksi real-time.
Fase 2EDA & Profiling

Data Understanding

Eksplorasi dataset 6,36 juta baris transaksi pembayaran online tanpa missing value dan duplikat.

Analisis distribusi 5 tipe transaksi: CASH_OUT (35,2%), PAYMENT (33,8%), CASH_IN (22,0%), TRANSFER (8,4%), DEBIT (0,7%).
Identifikasi class imbalance ekstrem: 99,871% Non-Fraud (6.354.407) vs 0,129% Fraud (8.213).
Analisis distribusi amount right-skewed ekstrem (nilai 0 hingga 92,4 juta unit).
Temuan 100% fraud terkonsentrasi hanya pada transaksi TRANSFER dan CASH_OUT.
Fase 3Feature Prep & Splitting

Data Preparation

Penyaringan data berorientasi fraud, One-Hot Encoding, dan penyiapan pembobotan kelas.

Drop kolom non-informatif: step, nameOrig, nameDest, dan isFlaggedFraud.
Penyaringan hanya pada tipe TRANSFER & CASH_OUT, mereduksi data dari 6,36 juta menjadi 2.770.409 baris.
One-Hot Encoding kolom type menghasilkan variabel biner type_TRANSFER.
Pemisahan 80/20 train-test split (Train: 2.216.327 data | Test: 554.082 data).
Kalkulasi scale_pos_weight = 336,49 untuk penanganan imbalance pada algoritma gradient boosting.
Fase 4Gradient Boosting Benchmarking

Modeling

Pelatihan dan komparasi model XGBoost dan LightGBM menggunakan Colab GPU.

Pelatihan LightGBM Classifier dengan integrasi scale_pos_weight.
Pelatihan XGBoost Classifier dengan akselerasi GPU dan pembobotan kelas terkalibrasi.
Penyelarasan random seed (random_state=42) untuk komparasi performa yang adil dan reproducible.
Fase 5Metric & Confusion Matrix Analysis

Evaluation

Evaluasi performa kedua model pada 554.082 data uji menggunakan kurva PR-AUC dan Confusion Matrix.

Evaluasi Confusion Matrix XGBoost: 1.618 True Positive, 28 False Negative, 1.444 False Positive.
Evaluasi Confusion Matrix LightGBM: 1.622 True Positive, 24 False Negative, 7.321 False Positive.
Komparasi PR-AUC: XGBoost (0,9361) unggul telak atas LightGBM (0,2423).
Penetapan XGBoost sebagai model terbaik dengan F1-Score 0,6873 dan Recall 98,30%.
Fase 6Production & Strategy Roadmap

Deployment

Penyusunan arsitektur integrasi scoring engine anti-fraud dan roadmap optimasi lanjutan.

Rekomendasi implementasi model XGBoost pada pipeline gateway transaksi finansial.
Rancangan dynamic thresholding berbasis tier nilai transaksi (amount).
Rencana integrasi fitur interaksi saldo dan model monitoring untuk deteksi data drift.