Credit Card Fraud Detection
An end-to-end machine learning system that detects fraudulent credit card transactions on a highly imbalanced, real-world dataset — covering data validation, exploratory analysis, baseline and final modeling, probability calibration, threshold optimization, and a production REST API.
Problem Statement
Fraudulent transactions are rare (~0.17%) and easily missed, causing significant financial loss. The hard parts aren't just accuracy — they're imbalance, calibration, and choosing a reliable decision threshold.
Highly Imbalanced Data
Only 492 of 283,726 transactions are fraud (~0.17%).
Overconfident Probabilities
Raw model scores need calibration to be trustworthy.
Reliable Threshold
Optimize the decision threshold for real-world use.
Key Highlights
- XGBoost as the final model, benchmarked against a Logistic Regression baseline
- PR-AUC used as the primary metric (the right choice for severe imbalance)
- Probability calibration with Platt scaling for trustworthy scores
- Decision-threshold optimization with confusion-matrix evaluation
- Saved, reusable model artifacts for reproducible inference
- Production REST API with a
/predict-csvbatch endpoint
End-to-End Pipeline
& Validation→ Exploratory
Data Analysis→ Model Training
(LogReg → XGBoost)→ Platt-Scaling
Calibration→ Threshold
Optimization→ FastAPI
Deployment
Data Cleaning & Validation
Removed 1,081 duplicate transactions, verified zero missing values, and confirmed the severe class imbalance and feature consistency.
Exploratory Data Analysis
Fraud-vs-non-fraud distribution, transaction-amount comparison, time-based fraud patterns, correlation inspection, and outlier analysis.
Model Training
Logistic Regression baseline and an XGBoost final model, evaluated on ROC-AUC, PR-AUC (primary), Precision, Recall, F1, and a confusion matrix at the optimized threshold.
Probability Calibration
Applied Platt scaling because raw probabilities were overconfident — improving reliability for real-world decision-making.
FastAPI Deployment
Served the calibrated model as a REST API with a /predict-csv endpoint for batch scoring.
Evaluation Approach
For an imbalanced problem, accuracy is misleading — so the model is evaluated on metrics that reflect real fraud-catching performance:
Threshold tuning balances catching fraud (recall) against false alarms (precision) at the chosen operating point.
Saved Model Artifacts
xgb_fraud_model_raw.joblib— trained XGBoost modelplatt_calibrator.joblib— Platt-scaling calibratorthreshold.json— optimized decision thresholdfeature_columns.json— feature schema for inference