# Prédiction de la Qualité de l'Air dans les Villes Marocaines
> Pipeline complet de Machine Learning et exploration du Federated Learning, appliqué à la prédiction de la pollution de l'air (PM2.5) à Casablanca, Rabat, Marrakech et Fès.
**Réalisé par :** Houda Lamrini
**Filière :** Master BDSI — Faculté des Sciences Dhar El Mahraz, Fès (USMBA)
**Année :** 2025-2026
---
## À propos du projet
Ce projet vise à construire des modèles de Machine Learning capables de prédire la concentration en particules fines **PM2.5** dans quatre grandes villes marocaines, à partir de données réelles de météo et de qualité de l'air.
Au-delà de la modélisation classique, le projet explore également l'**apprentissage fédéré (Federated Learning)** — une approche où les données restent locales à chaque ville et seuls les paramètres des modèles sont partagés, préservant ainsi la confidentialité.
## Objectifs
- Collecter des données réelles via une API publique (météo + qualité de l'air)
- Nettoyer, explorer et préparer un dataset exploitable pour le Machine Learning
- Entraîner et comparer plusieurs modèles de régression pour prédire le PM2.5
- Simuler un scénario de Federated Learning entre plusieurs villes, avec deux implémentations : une version "from scratch" et une version avec le framework **Flower**
## Structure du projet
```
├── 01_collecte.ipynb # Collecte des données via l'API OpenWeatherMap
├── 02_preparation.ipynb # Nettoyage et préparation du dataset
├── 03_modeles.ipynb # Construction et évaluation des modèles centralisés
├── 04_federe.ipynb # Federated Learning – FedAvg codé manuellement
├── 04_federe_flower.ipynb # Federated Learning – implémentation avec Flower (flwr)
├── data_raw.csv # Données brutes collectées
├── data_clean.csv # Dataset nettoyé et prêt pour la modélisation
└── README.md
```
## Technologies utilisées
- **Python** (Pandas, NumPy, Matplotlib)
- **Scikit-learn** — Régression …