# 🌍 Air Quality Prediction in Moroccan Cities
Pipeline complet de **Machine Learning** et de **Federated Learning** pour prédire l'indice de qualité de l'air (AQI) dans quatre villes marocaines : **Agadir, Tanger, Marrakech, Rabat**, à partir de données météorologiques collectées en temps réel via l'API OpenWeatherMap.
> 🎓 Mini-projet — Master Big Data & Systèmes Intelligents (BDSI), FSDM, USMBA Fès (2025–2026)
> 👥 Réalisé par Mohammed El Machrouhi
---
## 📌 Contexte
La qualité de l'air est un enjeu sanitaire majeur dans les grandes villes marocaines, mais les réseaux de surveillance restent peu denses. Ce projet propose un pipeline capable de **prédire l'AQI (5 niveaux)** à partir de données météo facilement accessibles, et explore une approche d'**apprentissage fédéré** où chaque ville entraîne un modèle local sans jamais partager ses données brutes.
## 🧩 Pipeline du projet
| Étape | Notebook | Description |
|-------|----------|-------------|
| 1️⃣ Collecte | `1_collecte.ipynb` | Récupération horaire des données météo & pollution via l'API OpenWeatherMap |
| 2️⃣ Préparation | `2_preparation.ipynb` | Nettoyage, encodage, normalisation, feature engineering |
| 3️⃣ Modélisation | `3_modelisation.ipynb` | Entraînement et comparaison Random Forest / KNN / Voting Classifier |
| 4️⃣ Federated Learning | `4_federated_learning.ipynb` | Simulation FedAvg avec Flower (4 villes = 4 clients) |
## 📊 Données
- **Source** : OpenWeatherMap API (`weather` + `air_pollution`)
- **Villes** : Agadir, Tanger, Marrakech, Rabat
- **Volume** : 706 enregistrements (176 itérations × 4 villes), fréquence horaire
- **Cible** : AQI — indice de qualité de l'air (1 = Bon → 5 = Très mauvais)
## 🤖 Résultats — Modèles centralisés
| Modèle | Accuracy | F1-Score (pondéré) |
|--------|----------|---------------------|
| Random Forest | 92.25% | 0.9192 |
| KNN (meilleur k) | 92.96% | 0.9296 |
| **Voting Classifier (RF + KNN)** | **92.96%** | **0.9296** |
## 🔐 Federated Learning — Flower …