Detecting Fraud in Mobile Money Transactions — A Rwandan Perspective
# Mobile Money Fraud Detection — Rwanda
Comparing traditional machine learning (scikit-learn) against deep learning (TensorFlow)
for detecting fraudulent mobile-money transactions, motivated by the rising threat of
mobile-money fraud in Rwanda.
**Summative project — Introduction to Machine Learning**
Author: **Jacques Twizeyimana**
### Quick links
- **Report:** `report.pdf`
- **Demo video:**
bugufi.link
- **Dataset (PaySim):**
kaggle.com
---
## Problem
Mobile money underpins Rwanda's digital economy, but its growth has been matched by a rise
in fraud that the Rwanda Investigation Bureau (RIB) has publicly warned about. This project
builds a reproducible pipeline that detects fraudulent transfers and critically compares
five models, reproducing and contextualising the findings of the Carnegie Mellon University
Africa study _"Mitigating Mobile Money Services Frauds in Rwanda."_
## Dataset
**PaySim** — a synthetic mobile-money
transaction log (6,362,620 rows) by Lopez-Rojas _et al._ It is **not committed** to this
repo (471 MB). To reproduce:
1. Download from Kaggle (link above).
2. Place `PS_20174392719_1491204439457_log.csv` in the project root.
Genuine mobile-money logs are confidential, so PaySim is the standard public benchmark. Its
transaction-type and balance fields let us engineer the same fraud signals the CMU-Africa
team used.
## Results
| Model | Precision | Recall | F1 | ROC-AUC |
| ------------------- | --------- | ------ | ---------- | ---------- |
| Random Forest | 1.000 | 0.999 | **0.9995** | 0.9994 |
| XGBoost | 0.947 | 0.996 | 0.971 | **0.9997** |
| DL Functional (TF) | 0.806 | 0.992 | 0.889 | 0.9994 |
| DL Sequential (TF) | 0.603 | 0.996 | 0.751 | 0.9988 |
| Logistic Regression | 0.278 | 0.889 | 0.423 | 0.9772 |
Tree-based ensembles dominate this tabular problem; the neural netw …