Mobile Money fraud detection using EDA and Random Forest — PaySim dataset (Africa)
# Mobile Money Fraud Detection — PaySim Dataset
> End-to-end fraud detection project on Mobile Money transactions —
> from exploratory data analysis to a Random Forest classification model.
> Based on the **PaySim** synthetic dataset, derived from real transactions
> of an **African Mobile Money service**.
---
## Table of Contents
- Context
- Key Results
- Visualizations
- Project Structure
- Installation
- Dataset
- Author
- License
---
## Context
Mobile Money (Wave, Orange Money, Free Money) is a cornerstone of financial
inclusion in West Africa. Fraud represents a major risk for these platforms,
with fraudsters exploiting TRANSFER and CASH_OUT operations to drain victim accounts.
This project analyzes **300,000 transactions** from the PaySim dataset to:
- Identify fraud patterns through exploratory data analysis (EDA)
- Engineer predictive features based on domain knowledge
- Build a Random Forest model to automatically detect fraudulent transactions
---
## Key Results
| Metric | Value |
|---|---|
| Fraud rate in dataset | 0.06% (severe class imbalance) |
| Transaction types containing fraud | TRANSFER and CASH_OUT only |
| Accounts fully drained in fraud cases | 93.4% |
| Model Precision (fraud class) | **100%** — zero false alarms |
| Model Recall (fraud class) | **75%** — detects 3 out of 4 fraud cases |
| F1-Score (fraud class) | **0.86** |
| Most predictive features | Engineered features (`orig_emptied`, `balance_diff_dest`) |
---
## Visualizations
### Transaction Amount Distribution by Type (Fraud vs Legitimate)
### Fraud Count by Transaction Type
### Feature Importance — Random Forest
---
## Project Structure
fraud-detection-mobile-money/
│
├── .gitignore
├── README.md
├── requirements.txt
├── fraud_detection.ipynb # Main notebook (EDA + Feature Engineering + Model)
│
└── images/
├── boxplot_amount_by_type.png
├── fraud_by_type.png
└── feature_importance.png
---
## Installation
```bash
# 1. Clone the re …