Applied ML · Fraud Detection
Credit Card Fraud Detection
Aarya Bhivsanee benchmarked Random Forest, AdaBoost and XGBoost on highly imbalanced credit card transaction data, scored by ROC-AUC rather than accuracy. XGBoost led at 0.982, ahead of Random Forest (0.902) and AdaBoost (0.870).
Overview
Fraud detection is a textbook imbalanced-classification problem — the interesting cases are a tiny fraction of the data, which makes accuracy a useless metric; a model that never flags fraud is still "99.8% accurate."
Approach
Working from the anonymized, PCA-transformed Kaggle credit card transaction dataset, I benchmarked three classifiers — Random Forest, AdaBoost, and XGBoost — scored by ROC-AUC instead. XGBoost led clearly at 0.982, ahead of Random Forest (0.902) and AdaBoost (0.870).
Results
- Benchmarked three classifiers — Random Forest, AdaBoost, and XGBoost — on highly imbalanced transaction data, evaluated by ROC-AUC rather than raw accuracy.
- XGBoost led at 0.982 ROC-AUC, outperforming Random Forest (0.902) and AdaBoost (0.870) at catching fraudulent transactions.
- Explored anonymized, PCA-transformed transaction features to find what separates fraud from legitimate activity without access to raw transaction meaning.
- Built interactive Plotly visualizations to make model results and class-imbalance tradeoffs inspectable, not just a single accuracy number.
Because the features are PCA components rather than raw transaction fields, there's no way to reason about them from domain knowledge alone — the exploratory analysis had to lean entirely on the data's statistical structure to find what actually separated fraud from legitimate activity. I built interactive Plotly visualizations around the results so the class-imbalance tradeoffs and model comparisons were something a reader could actually inspect, not just a single accuracy number to take on faith.
Tools
- Python
- Random Forest
- AdaBoost
- XGBoost
- Plotly