ATM Fraud Monitor · Machine Learning

Every transaction,
checked at the terminal.

A Random Forest classifier trained on 284,807 real card transactions, balanced with SMOTE, screening each swipe for the fingerprints of fraud the moment it's authorized.

Scan a Transaction
99.99%Accuracy
1.0000ROC-AUC
0.173%True Fraud Rate
SECURE AWAITING SCAN
•••• •••• •••• 0000
Amount
$0.00
Fraud Risk
0.0%
Valid Thru
GBU/28
•••

This card remains property of Finwise Secure Bank. Report lost or stolen cards immediately.

Tap the card to flip it

01 — Live Terminal

Run a transaction through the model

V1–V28 are PCA-transformed features, auto-filled from the selected sample (or zeroed for a manual entry).

Analysis Readout

Run a scan to see the verdict here.

02 — Training Results

Five models, one dataset

2,84,807Total transactions
492Fraud cases (0.173%)
5,68,630Samples after SMOTE
Random ForestBest model
ModelAccuracyROC-AUC

03 — Pipeline

How a transaction gets classified

  1. Load

    284,807 real transactions from the Kaggle (ULB) credit card fraud dataset.

  2. Preprocess

    Time and Amount are each standardized with their own StandardScaler; V1–V28 arrive already PCA-transformed.

  3. Balance

    SMOTE oversamples the fraud class so the model sees fraud and legitimate patterns in equal number.

  4. Train

    Logistic Regression, Decision Tree, Random Forest, KNN and a small neural net are trained on the balanced set, in a fixed column order: Time, V1…V28, Amount.

  5. Serve

    FastAPI loads the saved model and scalers, rebuilds that exact column order for every request, and returns a fraud probability.