Logo Lanfrica

LemraniAmira/air-quality-prediction-morocco

Domaine:

environment and energy

Type de record:

project
Créateur:
Lem
Hôte:
Prédiction du PM2.5 dans 4 villes marocaines — comparaison apprentissage centralisé vs Federated Learning (FedAvg manuel + Flower) # 🌫️ Prédiction de la qualité de l'air dans les villes marocaines Projet de Machine Learning appliqué à la prédiction du **PM2.5** (particules fines) dans quatre villes du Maroc — **Casablanca, Rabat, Marrakech et Fès** — comparant une approche **centralisée classique** à une approche **Federated Learning (apprentissage fédéré)**, avec une implémentation manuelle du FedAvg puis une implémentation avec le framework **Flower**. ## 📌 Contexte Chaque ville dispose de ses propres capteurs/données de pollution et de météo. Plutôt que de centraliser toutes les données sur un seul serveur (ce qui pose des questions de confidentialité et de coût de transfert), le Federated Learning permet d'entraîner un modèle global **sans jamais faire sortir les données locales de chaque ville** — seuls les paramètres du modèle sont échangés et agrégés. Ce projet compare les deux approches pour évaluer le compromis entre confidentialité (FL) et performance brute (modèle centralisé). ## 🗂️ Structure du dépôt ``` . ├── 01_collecte.ipynb # Collecte des données via l'API OpenWeatherMap (météo + qualité de l'air) ├── 02_preparation.ipynb # Nettoyage, feature engineering, encodage, normalisation ├── 03_modeles.ipynb # Modèles centralisés : Régression Linéaire vs Random Forest ├── 04_federe.ipynb # Federated Learning — implémentation manuelle du FedAvg ├── 04_federe_flower.ipynb # Federated Learning avec le framework Flower (NumPyClient, FedAvg) ├── Data/ │ ├── data_raw.csv # Données brutes collectées (météo + pollution, 4 villes) │ └── data_clean.csv # Données nettoyées, encodées et normalisées, prêtes pour le ML ├── Image/ # Graphiques générés (comparaisons, convergence, importance des features...) ├── Rapport_Projet.pdf # Rapport complet du projet └── requirements.txt # Dépendances Python ``` ## 🔬 Pipeline du projet ### Étape 1 — Collecte des données (`01_collecte.ipy …