Logo Lanfrica

babougaye/senegal-rental-price

Domain:

socioeconomic

Record type:

software
Creator:
bab
Host:
# Senegal Rental Price Service de prédiction du prix de location d'un bien immobilier au Sénégal (Dakar, Thiès, Saint-Louis, Mbour, Saly), de l'entraînement du modèle jusqu'à son exposition via une API REST, packagée et déployable avec Docker. > Projet M2 DSIA — Babou Gaye & Mouhamed Diouf ## Sommaire - Installation - Générer les données - Entraîner un modèle - Lancer l'API - Lancer le front - Lancer les tests - Tout lancer avec Docker - Structure du projet ## Installation Prérequis : Python 3.11+. ```bash python -m venv .venv source .venv/bin/activate pip install -e ".[dev]" pre-commit install ``` ## Générer les données Le jeu de données est synthétique (voir `data/README.md` pour la méthodologie). ```bash python -m senegal_rental_price.data.generate_synthetic_data \ --n-rows 4000 --seed 42 --output data/raw/locations_senegal.csv ``` ## Entraîner un modèle L'entraînement est configuré avec Hydra — aucun paramètre n'est codé en dur. Le tracking des runs se fait avec MLflow. ```bash # Modèle par défaut (random_forest) python -m senegal_rental_price.models.train # Changer de modèle et d'hyperparamètres en ligne de commande python -m senegal_rental_price.models.train model=xgboost model.params.max_depth=8 python -m senegal_rental_price.models.train model=ridge # Visualiser les runs (backend par défaut : sqlite local) mlflow ui --backend-store-uri sqlite:///mlflow.db ``` > ⚠️ **Deux backends MLflow distincts et indépendants coexistent dans ce > projet :** > - Par défaut (`conf/config.yaml`), l'entraînement écrit dans > `sqlite:///mlflow.db`, un fichier local à la racine du projet. C'est ce > backend qu'il faut consulter avec la commande `mlflow ui` ci-dessus. > - Le service `mlflow` de `docker-compose.yml` (section > Tout lancer avec Docker) démarre un serveur > **séparé**, avec son propre stockage dans `mlflow_data/` (vide au premier > lancement). Il ne contient **pas** automatiquement les runs entraînés en > local. Pour l'utiliser, démar …