TARDIS est un projet d’analyse de données et de machine learning réalisé dans le cadre du nouveau Service d’Analyse de Données SNCF, dont l’objectif est d’améliorer l’efficacité et la transparence du transport ferroviaire.
Mission : analyser les données historiques de retards de trains, identifier des tendances cachées et développer un modèle prédictif capable d’anticiper les retards avant qu’ils ne surviennent.
Le résultat final est un tableau de bord interactif développé avec Streamlit, destiné à aider les voyageurs à mieux planifier leurs trajets grâce à des analyses claires et des prédictions fiables.
-
Python Assurez-vous d'avoir Python 3.8+ installé.
-
Installer les dépendances Exécutez cette commande dans le répertoire du projet :
- pip install -r requirements.txt
- Exécuter le projet Pour le dashboard Streamlit :
- streamlit run tardis_dashboard.py
- jupyter notebook tardis_eda.ipynb
- jupyter notebook tardis_model.ipynb
Le projet est structuré en quatre grandes étapes.
Avant toute analyse, les données doivent être propres, cohérentes et exploitables.
- Chargement du fichier
dataset.csv - Inspection initiale des données
- Gestion des valeurs manquantes
- Suppression des doublons
- Conversion des types de données
- Feature engineering (extraction du mois, de l’année, du jour de la semaine, etc.)
tardis_eda.ipynb
- Analyse exploratoire initiale
- Nettoyage complet du dataset
- Création d’au moins une nouvelle variable
- Export du fichier
cleaned_dataset.csv
Une fois les données nettoyées, une analyse approfondie permet d’identifier les tendances et les corrélations.
- Statistiques descriptives des variables principales
- Distribution des retards
- Comparaison des retards selon différentes dimensions :
- Gare de départ / d’arrivée
- Période (mois, jour de la semaine, heure)
- Type de train
- Au minimum 3 graphiques (distribution, comparaison ou corrélation)
- Interprétation écrite pour chaque graphique
Toutes ces analyses sont incluses dans tardis_eda.ipynb.
Objectif : prédire la durée du retard en minutes (variable continue).
- Durée du retard (en minutes)
- Gare de départ
- Gare d’arrivée
- Heure de départ
- Jour de la semaine
- Type de train
- Préparation des features (encodage des variables catégorielles)
- Séparation des données (train/test)
- Entraînement d’un modèle de régression (linéaire ou basé sur les arbres)
- Évaluation via métriques adaptées :
- RMSE
- MAE
- R²
- Comparaison avec un modèle baseline (moyenne des retards)
tardis_model.ipynb
- Processus complet de préparation des données
- Modèle entraîné et évalué
- Interprétation des performances
- Sauvegarde du modèle (
model.pkloumodel.joblib)
Le tableau de bord rend l’analyse accessible et interactive.
Fichier : tardis_dashboard.py
- Visualisation de la distribution des retards
- Panneau de statistiques clés :
- Retard moyen
- Nombre total de trajets
- Taux de ponctualité
- Interface de prédiction :
- Sélection des paramètres du trajet
- Bouton de prédiction
- Affichage clair du retard estimé
- Au moins un élément interactif :
- Filtre par gare
- Sélecteur de période
- Ou tout autre contrôle dynamique
Le design reste volontairement simple et structuré : priorité à la clarté et à la robustesse.
Le dépôt final doit contenir les fichiers suivants :
requirements.txt: dépendances du projettardis_eda.ipynb: nettoyage, exploration et feature engineeringcleaned_dataset.csv: dataset nettoyétardis_model.ipynb: entraînement et évaluation du modèlemodel.pkloumodel.joblib: modèle entraîné sauvegardétardis_dashboard.py: application Streamlit interactiveREADME.md: documentation du projet
Langage :
- Python
Bibliothèques principales :
- pandas
- numpy
- matplotlib
- seaborn
- scikit-learn
- streamlit
Formatage du code :
- ruff formatter (obligatoire)