Research question: Can a model distinguish fraudulent transactions from legitimate ones using account-relative behavioral signals — without relying on the raw transaction amount alone?
Banks lose billions annually to fraud that static, rule-based systems catch too late. This project builds a classifier that scores each transaction using signals relative to the account's own history — amount, timing, velocity, distance, merchant familiarity — tuned toward catching more fraud at the cost of some false alarms.
A Random Forest classifier trained on 60,000 synthetic transactions, deliberately built with realistic class overlap. An earlier version scored a suspicious 100% across every metric — a sign of an unrealistic pattern, fixed by adding genuine overlap.
Catches 96% of fraud in testing, appropriate for a screening tool meant to flag for human review. Every flagged transaction lists the specific signals that drove the score.