Scénario de test & Cas d'usage
Training klassischer künstlicher neuronaler Netze.
Entdecken Sie alle Aktionen von neuralNetErstellung einer simulierten Sensordaten-Tabelle für Maschinen, wobei absichtlich fehlende Werte in kritischen Messgrößen eingefügt werden.
| 1 | DATA 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; |
| 16 | RUN; |
| 1 | PROC CASUTIL; |
| 2 | load DATA=casuser.SENSOR_DATEN casout='SENSOR_DATEN' replace; |
| 3 | RUN; |
| 4 | QUIT; |
| 1 | PROC CAS; |
| 2 | neuralNet.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}}; |
| 15 | RUN; |
| 16 | QUIT; |
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.