neuralNet annTrain

Vorausschauende Wartung von Industriemaschinen mit unvollständigen Sensordaten

Scénario de test & Cas d'usage

Geschäftskontext

Ein Fertigungsunternehmen sammelt Sensordaten von seinen Maschinen, um Ausfälle vorherzusagen. Aufgrund von Sensorstörungen oder Übertragungsproblemen sind die Daten oft unvollständig. Das Ziel ist es, ein robustes Modell zu trainieren, das mit diesen fehlenden Werten umgehen kann, um kostspielige Ausfallzeiten zu vermeiden.
Über das Set : neuralNet

Training klassischer künstlicher neuronaler Netze.

Entdecken Sie alle Aktionen von neuralNet
Datenaufbereitung

Erstellung einer simulierten Sensordaten-Tabelle für Maschinen, wobei absichtlich fehlende Werte in kritischen Messgrößen eingefügt werden.

Kopiert!
1DATA casuser.SENSOR_DATEN;
2 call streaminit(555);
3 DO i = 1 to 10000;
4 TEMPERATUR = 80 + rand('NORMAL', 0, 5);
5 DRUCK = 100 + rand('NORMAL', 0, 2);
6 VIBRATION = 5 + rand('NORMAL', 0, 1.5);
7 LAUFZEIT_STUNDEN = rand('UNIFORM') * 1000;
8 /* Fehlende Werte simulieren */
9 IF rand('UNIFORM') < 0.15 THEN TEMPERATUR = . ;
10 IF rand('UNIFORM') < 0.10 THEN VIBRATION = . ;
11 /* Zielvariable: Ausfallwahrscheinlichkeit steigt mit Temperatur und Vibration */
12 prob_ausfall = 1 / (1 + exp(-( -10 + 0.1*TEMPERATUR + 0.8*VIBRATION )));
13 AUSFALL_IN_24H = rand('BERNOULLI', prob_ausfall);
14 OUTPUT;
15 END;
16RUN;

Étapes de réalisation

1
Laden der Sensordaten mit fehlenden Werten in den CAS-Server.
Kopiert!
1PROC CASUTIL;
2 load DATA=casuser.SENSOR_DATEN casout='SENSOR_DATEN' replace;
3RUN;
4QUIT;
2
Training eines neuronalen Netzwerks unter Verwendung der 'MEAN'-Imputation für fehlende Werte und des 'ADAM'-Optimierers.
Kopiert!
1PROC CAS;
2neuralNet.annTrain /
3 TABLE={name='SENSOR_DATEN'},
4 inputs={{name='TEMPERATUR'}, {name='DRUCK'}, {name='VIBRATION'}, {name='LAUFZEIT_STUNDEN'}},
5 target='AUSFALL_IN_24H',
6 nominals={'AUSFALL_IN_24H'},
7 hiddens={15},
8 acts={'RECTIFIER'},
9 targetAct='SOFTMAX',
10 errorFunc='ENTROPY',
11 missing='MEAN', /* Wichtiger Testparameter */
12 nloOpts={algorithm='ADAM', adamOpt={learningRate=0.005}, maxIters=50},
13 seed=111,
14 code={casOut={name='WARTUNG_SCORE_CODE', replace=true}};
15RUN;
16QUIT;

Erwartetes Ergebnis


Die Aktion wird ohne Fehler ausgeführt und beweist, dass die Option `missing='MEAN'` die fehlenden Werte erfolgreich imputiert hat, was ein stabiles Training ermöglicht. Das Trainingsprotokoll zeigt eine konvergierende Verlustfunktion. Eine Tabelle 'WARTUNG_SCORE_CODE' wird erstellt, die den SAS DATA Step-Code enthält, um neue Maschinendaten (auch mit fehlenden Werten) zu bewerten.