dataSciencePilot analyzeMissingPatterns

Verarbeitung großer IoT-Sensordatenmengen mit hoher Kardinalität zur Erkennung von Ausfallmustern

Scénario de test & Cas d'usage

Geschäftskontext

Eine Industrieanlage sammelt Millionen von Messwerten von Tausenden von Sensoren. Manchmal fallen Sensoren aus und melden keine Daten. Ziel ist es, diese Muster fehlender Daten in großem Maßstab zu analysieren, um festzustellen, ob sie Geräteausfälle vorhersagen. Die Variable 'SensorID' hat eine sehr hohe Kardinalität, was eine Herausforderung für Standard-Zählalgorithmen darstellt.
Über das Set : dataSciencePilot

Automatisiertes maschinelles Lernen (AutoML) und Pipeline-Generierung.

Entdecken Sie alle Aktionen von dataSciencePilot
Datenaufbereitung

Generierung eines großen Datensatzes (100.000 Zeilen) zur Simulation von IoT-Sensordaten mit vielen eindeutigen Sensor-IDs und zufällig fehlenden Messwerten.

Kopiert!
1DATA mycas.IOT_SENSOR_DATEN (promote=yes);
2 DO i = 1 to 100000;
3 SensorID = 'Sensor_' || left(put(ceil(rand('UNIFORM') * 5000), 8.));
4 IF rand('UNIFORM') < 0.05 THEN Temperatur = .;
5 ELSE Temperatur = 20 + rand('NORMAL', 0, 5);
6 IF rand('UNIFORM') < 0.08 THEN Druck = .;
7 ELSE Druck = 1013 + rand('NORMAL', 0, 20);
8 IF rand('UNIFORM') < 0.02 THEN Vibration = .;
9 ELSE Vibration = 5 + rand('NORMAL', 0, 1.5);
10 OUTPUT;
11 END;
12RUN;

Étapes de réalisation

1
Erster Versuch der Analyse mit einem niedrigen `distinctCountLimit`, um einen Fehler oder eine Warnung zu provozieren, da die Kardinalität von 'SensorID' hoch ist.
Kopiert!
1PROC CAS;
2 dataSciencePilot.analyzeMissingPatterns
3 TABLE={name='IOT_SENSOR_DATEN'},
4 nominals={'SensorID'},
5 distinctCountLimit=1000,
6 casOut={name='iot_patterns_fail', replace=true};
7RUN;
8QUIT;
2
Zweiter Versuch mit `misraGries=TRUE`, um die Analyse trotz der hohen Kardinalität erfolgreich durchzuführen und die Frequenzverteilung der fehlenden Muster zu schätzen.
Kopiert!
1PROC CAS;
2 dataSciencePilot.analyzeMissingPatterns
3 TABLE={name='IOT_SENSOR_DATEN'},
4 nominals={'SensorID'},
5 distinctCountLimit=1000,
6 misraGries=TRUE,
7 casOut={name='iot_patterns_success', replace=true};
8RUN;
9QUIT;

Erwartetes Ergebnis


Der erste Schritt sollte eine Warnung im Protokoll erzeugen, die besagt, dass das `distinctCountLimit` überschritten wurde. Der zweite Schritt mit `misraGries=TRUE` soll erfolgreich abgeschlossen werden. Die Ausgabetabelle 'iot_patterns_success' wird eine geschätzte Häufigkeit der Muster fehlender Werte liefern und damit die Fähigkeit der Aktion demonstrieren, mit hochkardinalen Daten umzugehen und skalierbare Analysen zu ermöglichen.