A Big Data project that implements a distributed machine learning pipeline for predicting property prices in Tunisia. The solution adapts a high-performing XGBoost model to a Spark environment using Gradient Boosted Trees, achieving 91.5% of the original model's accuracy (R² of 0.6918) while enabling large-scale processing.
# 🏡 Prédiction des Prix Immobiliers avec PySpark 🚀
Ce projet implémente un modèle de prédiction des prix immobiliers utilisant PySpark et l'algorithme Gradient Boosted Trees (GBT). Il démontre l'adaptation d'un modèle XGBoost vers l'écosystème Spark pour permettre le traitement distribué et le passage à l'échelle.
## 📋 Aperçu du Projet
Le projet comprend:
- Un modèle de prédiction des prix immobiliers basé sur PySpark ML
- Un pipeline Spark complet pour le prétraitement, le feature engineering et l'entraînement
- Des améliorations techniques pour maximiser la précision (R² = 0.6918)
- Une architecture distribuée pour le traitement de grands volumes de données
## đź”§ Structure du Projet
```
├── docker-compose.yml # Configuration de l'environnement distribué
├── Dockerfile # Image personnalisée avec les dépendances ML
├── scripts/ # Scripts d'exécution et d'analyse
│ ├── spark_gbt_basic.py # Implémentation GBT simple (R² = 0.6855)
│ └── spark_gbt_optimized.py # Implémentation GBT optimisée (R² = 0.6918)
├── data/ # Données immobilières
│ └── data.csv # Dataset des propriétés (8774 observations)
├── rapport.md # Rapport détaillé du projet
└── README.md # Ce fichier
```
## 🌟 Caractéristiques Principales
- **Feature Engineering Avancé**: Création de variables quadratiques, ratios et interactions
- **Optimisation des Hyperparamètres**: Configuration fine du GBT pour maximiser le R²
- **Traitement des Valeurs Aberrantes**: Filtrage intelligents des prix extrĂŞmes
- **Pipeline Spark Complet**: Workflow reproductible de bout en bout
- **Environnement Containerisé**: Configuration Docker prête à l'emploi
## 📊 Résultats
| Modèle | R² (échelle log) | R² (échelle originale) | RMSE |
|---------------------|------------------|------------------------|------------------|
| GBT Simple | 0.6855 | 0.6614 …