Bank Transaction Fraud Detection
2,512bank transactions
7models compared
5engineered fraud signals
A Python model that flags suspicious bank transactions and gives each one a fraud probability, built with a classmate for the Machine Learning course.
- Engineered fraud signals from raw transaction data: high amounts, repeated login attempts, rapid repeat transactions, unusually long transaction times and channel patterns.
- Labeled the data with a rule that flags any transaction tripping 3 or more signals, giving a 10% fraud rate, similar to real data.
- Trained and compared 7 models (logistic regression, linear and multiple linear regression, a decision tree, SVMs with linear and RBF kernels, and k nearest neighbors), scored on accuracy, precision, recall, F1 and ROC AUC.
- Recommended logistic regression for its interpretability and fast real time scoring.
Pythonpandasscikit-learnMatplotlibJupyterFeature engineering
Academic project, no public buildAsk for a walkthrough