Pipeline ML — Condition Monitoring Hydraulique
1. Ingestion des données
Source : UCI – Condition monitoring of hydraulic systems (2205 cycles × 17 capteurs)
Chaque fichier capteur est une matrice (2205, N) où chaque ligne est un cycle de 60 s.
L’agrégation par moyenne temporelle produit un vecteur de 17 features par cycle.
Groupe |
Capteurs |
Fréquence |
|---|---|---|
Pression |
PS1–PS6 |
100 Hz |
Puissance moteur |
EPS1 |
100 Hz |
Débit |
FS1, FS2 |
10 Hz |
Température |
TS1–TS4 |
1 Hz |
Vibration |
VS1 |
1 Hz |
Indicateurs calculés |
CE, CP, SE |
1 Hz |
2. Prétraitement
Filtrage des cycles instables (
stable_flag = 1) — 756 cycles supprimés, 1449 conservésLabels multi-output issus de
profile.txt:
Target |
Classes |
Interprétation |
|---|---|---|
|
3, 20, 100 |
panne / réduit / ok |
|
73, 80, 90, 100 |
panne / lag sévère / lag léger / ok |
|
0, 1, 2 |
aucune / faible / sévère |
|
90, 100, 115, 130 |
panne / sévère / réduit / ok |
3. Modèle
MultiOutputClassifier(RandomForestClassifier) — scikit-learn
Pas de normalisation (arbres, seuils relatifs)
Split 80/20 stratifié sur
cooler_conditionUn classifieur indépendant par composant
4. Métriques
F1 macro : métrique principale, traite toutes les classes à égalité
Precision / Recall : recall critique en maintenance (faux négatif = panne non détectée)
Matrice de confusion : identifier les classes confondues entre elles
5. Résultats
Composant |
Accuracy |
F1 macro |
|---|---|---|
|
100% |
1.000 |
|
99.3% |
0.993 |
|
99.0% |
0.990 |
|
94.8% |
0.947 |
La confusion principale est entre les états 90 (lag léger) et 100 (ok) de la valve — physiquement proches, signaux capteurs similaires.