# DTT Path Loss Prediction in Benin — Reproducibility Repository
Code and data accompanying the article on machine-learning-based path loss / field-strength
prediction for Digital Terrestrial Television (DTT) coverage in Benin, comparing ML models
against empirical models (Okumura-Hata, ITU-R) across two contrasting environments:
**Cotonou** (urban) and **Kandi** (suburban).
This repository contains only the notebooks, data, and precomputed results that were used to
produce the figures and tables in the article — not the full thesis codebase (geospatial feature
engineering, synthetic-data generation pipeline, etc.), which is kept separately.
## Repository structure
```
.
├── data/
│ ├── dataset2_Efield_clean.csv # 338 cleaned field measurements, ML-ready features
│ └── radio_features_public.csv # Same measurements + zone/antenna-height metadata
├── notebooks/ # Run in numeric order — see below
│ ├── 01_hyperparameter_optimization.ipynb
│ ├── 02_feature_importance.ipynb
│ ├── 03_hata_calibration.ipynb
│ ├── 04_hybrid_models.ipynb
│ ├── 05_augmentation_comparison.ipynb
│ └── 06_cross_family_comparison.ipynb
└── outputs/ # Precomputed CSV/JSON results (already saved by each notebook)
```
## Setup
Requires **Python 3.11+**.
```bash
git clone
github.com /dtt-pathloss-benin.git
cd dtt-pathloss-benin
pip install -r requirements.txt
```
## Reproducing the results
The notebooks must be run **in order** — each one loads results saved by the previous ones from
`outputs/`. All `outputs/*.csv` / `*.json` files are already included, so you can either:
- inspect the precomputed results directly, or
- re-run any notebook end-to-end (it will overwrite its own outputs).
| # | Notebook | What it does | Produces |
|---|----------|---------------|----------|
| 1 | `01_hyperparameter_optimization.ipynb` | Optuna hyperparameter search (RF, XGBoost, CatBoost, LightGBM) | `best_params.json`, …