Credit-card fraud detection is difficult because fraudulent transactions make up only a small fraction of observed payments. Under this class imbalance, a classifier can achieve high accuracy while failing to identify fraud, making accuracy alone unsuitable for model selection [1], [3]. This study compares Logistic Regression, Decision Tree, Random Forest, and XGBoost under three training conditions: no imbalance adjustment, Synthetic Minority Oversampling Technique (SMOTE), and class weighting. Experiments use the public ULB Credit Card Fraud Detection dataset, which contains 284,807 transactions, including 492 labelled as fraudulent (0.173%). After removing duplicate records, the data are divided using a stratified 80/20 split. Resampling and scaling are restricted to the training data to prevent test-set leakage. The twelve configurations are evaluated on an untouched test set using Precision, Recall, F1-score, ROC-AUC, and PR-AUC. A prespecified eligibility rule requires Recall of at least 0.60 and Precision of at least 0.30; eligible models are then ranked using a weighted composite of Recall, Precision, F1-score, and PR-AUC. XGBoost with class weighting is selected, with Recall 0.789, Precision 0.974, F1-score 0.872, and PR-AUC 0.823. Bootstrap comparisons indicate a clearer advantage over Logistic Regression and Decision Tree than over Random Forest. SHAP is used to explain global and transaction-level predictions, and a Flask prototype displays scores, risk bands, and feature contributions. Because most input variables are anonymized, these explanations identify influential components but do not establish real-world transaction causes. The findings are limited by a single random split, only 95 fraudulent test transactions, fixed hyperparameters, and a dataset covering two days of transactions.
No takes yet. Share an insight, caveat, or question.
Godse et al. (2026) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: