Application de data science pour explorer, nettoyer et modéliser les prix de smartphones, avec une interface interactive Streamlit pour tester des prédictions en direct.
- Créer un dataset de smartphones (avec quelques anomalies volontairement ajoutées)
- Effectuer l’exploration et le prétraitement des données
- Visualiser les données (distribution, corrélation, PCA, t-SNE)
- Entraîner un modèle de régression (Arbre de Décision)
- Prédire le prix d’un smartphone à partir de ses caractéristiques
Projet_Analyse_Donnees_Smartphones/
├── data/
│ └── smartphones.csv
└── src/
├── app.py
├── modeling.py
├── preprocessing.py
└── scraping.py
- Python 3.9+ (recommandé)
- pip
pip install pandas numpy matplotlib seaborn scikit-learn streamlitpython src/scraping.pypython src/preprocessing.py
python src/modeling.pystreamlit run src/app.pyDans la barre latérale Streamlit, vous pouvez naviguer entre :
-
Exploration & Nettoyage
- Distribution des prix
- Heatmap des corrélations
-
Réduction Dimensionnelle
- Projection PCA (2D)
- Visualisation t-SNE (2D)
-
Analyse de l’Arbre
- Importance des variables
- Visualisation de l’arbre de décision
-
Prédiction en Direct
- Saisie des caractéristiques d’un smartphone
- Estimation automatique du prix en DH
- Brand : marque
- Model : modèle
- Price_DH : prix en dirhams
- RAM_GB : mémoire RAM
- Storage_GB : stockage
- Screen_Size_Inch : taille écran
- Battery_mAh : capacité batterie
Le pipeline inclut notamment :
- Imputation des valeurs manquantes (médiane / moyenne)
- Suppression d’anomalies extrêmes de prix
- Encodage one-hot de la marque
- Standardisation des variables numériques
- Transformation logarithmique de la cible pour stabiliser la régression
- Algorithme :
DecisionTreeRegressor - Objectif : prédire le prix smartphone
- Sortie finale : conversion inverse du log pour afficher un prix réel en DH
- Évaluation plus complète (MAE, RMSE, validation croisée)
- Comparaison avec d’autres modèles (Random Forest, XGBoost, etc.)
- Sauvegarde/versioning du modèle
- Déploiement web (Streamlit Cloud, Docker)
Projet réalisé dans le cadre d’un exercice d’analyse de données et de modélisation ML.