bart bartGauss

Scénario Performance : Prédiction de Panne sur Données de Capteurs Volumineuses

Scénario de test & Cas d'usage

Contexte Métier

Une usine utilise des milliers de capteurs sur ses machines pour la maintenance prédictive. L'objectif est de prédire la durée de vie restante (en heures) d'un composant critique à partir de données de capteurs à haute fréquence. Le volume de données étant très important, le modèle doit être entraîné dans une fenêtre de temps limitée (ex: 20 minutes) pour rester opérationnel.
À propos du Set : bart

Modèles d'arbres de régression additive bayésienne.

Découvrir toutes les actions de bart
Préparation des Données

Génération d'une table volumineuse (200 000 enregistrements) simulant des données de capteurs (température, vibration, pression) et la durée de vie restante d'un composant.

Copié !
1DATA mycas.capteurs_usine(copies=2);
2 call streaminit(555);
3 DO i = 1 to 100000;
4 temp_moteur = 80 + rand('NORMAL', 0, 5);
5 vibration_hz = 60 + rand('NORMAL', 0, 2);
6 pression_huile = 40 + rand('UNIFORM')*5;
7 heures_fonctionnement = rand('UNIFORM') * 5000;
8 /* La durée de vie diminue non-linéairement avec l'usure */
9 duree_vie_restante = 2000 - 0.1*heures_fonctionnement - 5*temp_moteur - 10*vibration_hz + rand('NORMAL', 0, 50);
10 IF duree_vie_restante < 0 THEN duree_vie_restante = 0;
11 OUTPUT;
12 END;
13RUN;

Étapes de réalisation

1
Entraînement du modèle sur la table volumineuse avec une contrainte de temps stricte de 10 minutes et en activant le stockage des données d'entraînement en mémoire pour la performance.
Copié !
1PROC CAS;
2 bart.bartGauss /
3 TABLE={name='capteurs_usine'},
4 target='duree_vie_restante',
5 inputs={'temp_moteur', 'vibration_hz', 'pression_huile', 'heures_fonctionnement'},
6 nTree=100,
7 nBI=500,
8 nMC=2500,
9 maxTrainTime=600, /* 10 minutes */
10 trainInMem=TRUE,
11 distributeChains=4, /* Simule une distribution sur 4 workers */
12 outputTables={names={'Timing'}};
13RUN;

Résultat Attendu


L'action doit terminer son exécution en moins de 600 secondes. La table de résultats 'Timing' doit afficher le temps passé dans les différentes phases de l'exécution, avec le 'MCMC Sampling Time' étant la valeur principale. Si le temps est dépassé, l'action doit s'arrêter gracieusement et fournir les résultats basés sur les itérations complétées. Le log doit indiquer que l'option 'trainInMem' a été utilisée.