SNCF DelayFlow est une plateforme d'analyse de données et de machine learning conçue pour explorer, analyser et prédire les retards des trains TGV du réseau SNCF. En utilisant les données de l'Open Data SNCF, ce projet fournit des diagnostics de performance approfondis et une analyse des causes racines via un tableau de bord interactif.
- Pipeline de Données Automatisé : Nettoyage et ingestion de données brutes (CSV) vers un format optimisé (Parquet) puis export vers SQLite.
- Analyse des Causes Racines : Identification des facteurs principaux de retard (Infrastructure, Matériel Roulant, Gestion du Trafic, etc.).
- Visualisations Interactives : Tableau de bord Streamlit moderne avec des indicateurs de performance (KPI) et des graphiques dynamiques.
- Machine Learning : Modèle de prédiction des retards basé sur les caractéristiques extraites des liaisons ferroviaires.
- Traitement Big Data : Utilisation de PySpark pour le nettoyage efficace des données à grande échelle.
- Langage : Python 3.10+
- Analyse de Données : Pandas, NumPy
- Traitement Distribué : PySpark
- Visualisation : Streamlit, Plotly
- Machine Learning : Scikit-learn, Joblib
- Base de Données : SQLite, Parquet
- Gestion de Dépendances : pip
SncfDelayFlow/
├── app.py # Application Streamlit (Interface utilisateur)
├── scripts/ # Scripts du pipeline
│ ├── clean_data.py # Nettoyage avec PySpark
│ ├── extract_features.py# Ingénierie des caractéristiques
│ ├── train_model.py # Entraînement du modèle ML
│ ├── export_sqlite.py # Export vers la base de données finale
│ └── run_pipeline.py # Orchestrateur du pipeline
├── data/ # Données du projet
│ ├── raw/ # Données brutes SNCF (CSV)
│ ├── processed/ # Données nettoyées (Parquet)
│ └── sncf_data.db # Base de données SQLite finale
├── models/ # Modèles ML sauvegardés
└── requirements.txt # Dépendances Python
-
Cloner le dépôt :
git clone https://github.com/votre-username/SncfDelayFlow.git cd SncfDelayFlow -
Installer les dépendances :
pip install -r requirements.txt
Note : Assurez-vous d'avoir Java installé pour faire fonctionner PySpark.
Pour traiter les données brutes, entraîner le modèle et préparer la base de données :
python scripts/run_pipeline.pyPour visualiser les analyses :
streamlit run app.pyLes données proviennent du portail SNCF Open Data, notamment :
- Régularité mensuelle TGV par axe.
- Régularité mensuelle TGV par liaison.
- Liste des gares de voyageurs.
Développé dans le cadre d'un projet d'expertise en ingénierie des données.