🔧 Pipeline Thickness Predictor
Modèles de prédiction d'épaisseur de tuyauterie basés sur l'historique des mesures, pour le suivi d'intégrité et la prédiction de corrosion.
🎯 4 Tâches de Prédiction
| Tâche | Modèle | Métrique | Performance |
|---|---|---|---|
| Épaisseur (mm) | XGBoost | RMSE | 0.0585 mm |
| Taux de corrosion (mm/an) | XGBoost | R² | 0.9987 |
| Durée de vie restante (années) | XGBoost | R² | 0.9883 |
| Niveau d'alerte | XGBoost | Accuracy | 98.56% |
📊 Comparaison des Modèles (Prédiction Épaisseur)
| Modèle | RMSE (mm) | MAE (mm) | R² | MAPE (%) |
|---|---|---|---|---|
| XGBoost | 0.0585 | 0.0312 | 0.9999 | 1.24% |
| Random Forest | 0.0719 | 0.0314 | 0.9998 | 1.05% |
| Gradient Boosting | 0.0395 | 0.0243 | 0.9999 | 0.91% |
| Ridge (baseline) | 0.0212 | 0.0108 | 1.0000 | 0.86% |
🔑 Top Features (SHAP Analysis)
thickness_lag_1- Dernière mesure d'épaisseur (4.13)thickness_lag_2- Avant-dernière mesure (0.74)thickness_change- Variation récente (0.10)thickness_lag_3- Mesure n-3 (0.05)corr_rate_rolling_3- Moyenne mobile corrosion (0.03)
💻 Utilisation
import joblib
from huggingface_hub import hf_hub_download
# Télécharger le modèle
model_path = hf_hub_download("MustaphaL/pipeline-thickness-predictor", "models/model_thickness_xgb.joblib")
model = joblib.load(model_path)
# Prédire
prediction = model.predict(features)
📐 Méthodologie
- Dataset : 8 440 mesures synthétiques basées sur les modèles de Waard-Milliams, API 570, NACE SP0775
- Split : Par segment (80/20) pour éviter le data leakage temporel
- Feature engineering : Lag features, moyennes mobiles, interactions physiques, features SHAP
- Référence : Grinsztajn et al. "Why do tree-based models still outperform deep learning on tabular data?" (NeurIPS 2022)
📄 Licence
MIT