bayesianNetClassifier bnet

Automatisierte Auswahl des besten Vorhersagemodells für Maschinenausfälle

Scénario de test & Cas d'usage

Geschäftskontext

In einer Produktionsanlage werden Daten von Hunderten von Sensoren gesammelt. Das Ziel ist es, ein robustes Modell zur Vorhersage von Maschinenausfällen ('Ausfall_Prognose') zu entwickeln. Da die optimale Netzwerkstruktur und die Anzahl der Prädiktoren unbekannt sind, soll die bnet-Aktion automatisch das beste Modell aus einer Reihe von Konfigurationen (verschiedene Strukturen, Anzahl der Eltern, Variablenauswahl) finden.
Über das Set : bayesianNetClassifier

Klassifikation mit Bayes-Netzen.

Entdecken Sie alle Aktionen von bayesianNetClassifier
Datenaufbereitung

Erstellung einer großen Tabelle mit Sensordaten, die viele potenzielle Prädiktoren für einen Maschinenausfall enthält.

Kopiert!
1DATA work.sensor_daten;
2call streaminit(789);
3array sensors{100};
4DO record_id = 1 to 20000;
5 DO i = 1 to 100;
6 sensors{i} = rand('Normal', 50, 10);
7 END;
8 ausfall_wahrscheinlichkeit = 1 / (1 + exp(-( -5 + (sensors{3}/20) + (sensors{15}/25) - (sensors{78}/15) )));
9 IF rand('Uniform') < ausfall_wahrscheinlichkeit THEN Ausfall_Prognose = 'JA'; ELSE Ausfall_Prognose = 'NEIN';
10 OUTPUT;
11END;
12drop i;
13RUN;

Étapes de réalisation

1
Laden der umfangreichen Sensordaten in CAS.
Kopiert!
1 
2PROC CASUTIL;
3load
4DATA=work.sensor_daten outcaslib='casuser' casout='SENSOR_DATEN' replace;
5RUN;
6 
2
Ausführen der bnet-Aktion mit 'bestModel=TRUE', um mehrere Strukturen ('TAN', 'MB'), maximale Elternanzahlen (1 bis 3) und Variablenauswahlmethoden zu testen.
Kopiert!
1PROC CAS;
2bayesianNetClassifier.bnet /
3 TABLE={caslib='casuser', name='SENSOR_DATEN'},
4 target='Ausfall_Prognose',
5 /* Nur die ersten 20 Sensoren als Inputs zur Vereinfachung */
6 inputs={'sensors1'-'sensors20'},
7 nominals={'Ausfall_Prognose'},
8 bestModel=TRUE,
9 structures={'TAN', 'MB'},
10 maxParents=3,
11 varSelect={'ONE', 'TWO'},
12 outNetwork={caslib='casuser', name='bnet_sensor_netzwerk_best', replace=true},
13 saveState={caslib='casuser', name='bnet_sensor_modell_best', replace=true};
14RUN;
3
Überprüfen der 'ModelInfo'-Tabelle in den Ergebnissen, um die Parameter des ausgewählten besten Modells zu identifizieren.
Kopiert!
1/* Die 'ModelInfo'-Tabelle wird standardmäßig im Log ausgegeben, wenn bestModel=TRUE ist.
2Dieser Schritt ist eine konzeptionelle Überprüfung des Logs, um zu sehen, welche Kombination
3von Struktur, maxParents und varSelect den besten Misclassification Rate hatte. */

Erwartetes Ergebnis


Die Aktion führt eine Suche über den definierten Parameterraum durch und wählt das Modell mit der niedrigsten Fehlklassifikationsrate aus. Das Log zeigt die Ergebnisse für jede getestete Konfiguration an. Die Ausgabetabellen ('bnet_sensor_netzwerk_best', 'bnet_sensor_modell_best') entsprechen der Konfiguration des besten gefundenen Modells. Dies demonstriert die Fähigkeit der Aktion zur automatisierten Modelloptimierung.