neuralNet annScore

Grenzfall: Vorausschauende Wartung mit unvollständigen Sensordaten

Scénario de test & Cas d'usage

Geschäftskontext

Ein Fertigungsbetrieb überwacht Maschinen mit Sensoren, um Ausfälle vorherzusagen. Aufgrund von Netzwerkproblemen sind die Sensordaten manchmal unvollständig. Das Ziel ist es, den Zustand aller Maschinen zu bewerten, auch derjenigen mit fehlenden Sensorwerten, um Wartungsprüfungen zu priorisieren und die Robustheit des Scoring-Prozesses gegenüber Datenqualitätsproblemen zu testen.
Über das Set : neuralNet

Training klassischer künstlicher neuronaler Netze.

Entdecken Sie alle Aktionen von neuralNet
Datenaufbereitung

Erstellt eine Trainingsdatentabelle ('sensor_training') ohne fehlende Werte und eine Scoring-Tabelle ('sensor_aktuell') mit absichtlich eingefügten fehlenden Werten ('.') in den Spalten 'temperatur' und 'vibration'.

Kopiert!
1DATA casuser.sensor_training;
2 DO maschinen_id = 1 to 1000;
3 temperatur = 150 + rand('NORMAL', 0, 15);
4 druck = 50 + rand('NORMAL', 0, 5);
5 vibration = 5 + rand('NORMAL', 0, 1.5);
6 ausfall_in_24h = (temperatur > 170 or vibration > 7);
7 OUTPUT;
8 END;
9RUN;
10 
11DATA casuser.sensor_aktuell;
12 DO maschinen_id = 1 to 100;
13 temperatur = 150 + rand('NORMAL', 0, 15);
14 druck = 50 + rand('NORMAL', 0, 5);
15 vibration = 5 + rand('NORMAL', 0, 1.5);
16 IF mod(maschinen_id, 10) = 0 THEN temperatur = . ; /* Fehlender Wert */
17 IF mod(maschinen_id, 7) = 0 THEN vibration = . ; /* Fehlender Wert */
18 OUTPUT;
19 END;
20RUN;

Étapes de réalisation

1
Trainieren eines Modells zur Ausfallvorhersage auf dem sauberen Trainingsdatensatz.
Kopiert!
1PROC CAS;
2 neuralNet.annTrain /
3 TABLE={name='sensor_training'},
4 target='ausfall_in_24h',
5 inputs={'temperatur', 'druck', 'vibration'},
6 modelOut={name='wartungs_modell', replace=true};
7RUN;
8QUIT;
2
Erster Scoring-Lauf: Beobachtungen mit fehlenden Werten werden explizit ausgeschlossen (`includeMissing=FALSE`).
Kopiert!
1PROC CAS;
2 neuralNet.annScore /
3 TABLE={name='sensor_aktuell'},
4 modelTable={name='wartungs_modell'},
5 includeMissing=FALSE,
6 casOut={name='wartung_prognose_exkl', replace=true};
7RUN;
8QUIT;
3
Zweiter Scoring-Lauf: Beobachtungen mit fehlenden Werten werden standardmäßig einbezogen (`includeMissing=TRUE`).
Kopiert!
1PROC CAS;
2 neuralNet.annScore /
3 TABLE={name='sensor_aktuell'},
4 modelTable={name='wartungs_modell'},
5 includeMissing=TRUE,
6 casOut={name='wartung_prognose_inkl', replace=true};
7RUN;
8QUIT;

Erwartetes Ergebnis


Zwei Ausgabetabellen werden erstellt. Die Tabelle 'wartung_prognose_exkl' enthält weniger Zeilen als die ursprünglichen 100, da alle Maschinen mit mindestens einem fehlenden Sensorwert entfernt wurden. Die Tabelle 'wartung_prognose_inkl' enthält genau 100 Zeilen, da das Modell versucht hat, auch die unvollständigen Datensätze zu bewerten. Dieser Test validiert das Verhalten des Parameters `includeMissing` und dessen Auswirkung auf das Endergebnis bei unvollständigen Daten.