Anhand eines aktuellen Themas – der Analyse von Feinstaubdaten – zeigt sich sehr gut, was bei IoT Analytics wichtig ist und worauf man achten sollte. Ein Leitfaden von Nicolai Ernst, Data Engineer bei it-novum.
Anfang des Jahres fand in Stuttgart der »Feinstaub«-Hackathon statt. Die beim Hackathon verwendeten Daten stammen von Bürgern, die diese frei zur Verfügung stellen. Im Nachgang an die Veranstaltung habe ich mich etwas intensiver mit den Daten befasst und auf deren Grundlage die folgenden fünf Erkenntnisse für IoT Analytics entwickelt:
1. Täuschende Schlichtheit.
Schauen wir uns zunächst die Daten des Sensors an, der die Temperatur misst. Das Ganze sieht zunächst simpel aus: Pro Zeile gibt es einen Zeitstempel und den dazugehörigen Messwert – die Temperatur. Um die Daten aber richtig interpretieren und mit anderen Sensoren aus dem Netzwerk vergleichen zu können, fehlen weitere Informationen, die nicht direkt von diesem Sensor stammen. Eine dieser fehlenden Informationen wäre zum Beispiel die Position des Sensors: Neben dem Längen- und Breitengrad ist es interessant zu wissen, ob der Sensor drinnen oder draußen steht beziehungsweise ob er direkter Sonneneinstrahlung ausgesetzt ist oder nicht.
Diese Informationen werden benötigt, damit der Temperaturwert besser interpretiert werden kann: Die exakte Position des Sensors wirkt sich letztendlich auch auf die Messwerte aus.
Erst durch die Kombination von mehreren Datenquellen (»Data Blending«) entsteht ein Datensatz, der sich interpretieren und auswerten lässt. Die reinen Sensorendaten haben meist nur wenig Informationsgehalt.
2. Frequenz bestimmen
Im Gegensatz zu klassischen OLTP-Systemen (»Online Transaction Processing«) ergibt sich bei Sensordaten die Möglichkeit, die zu speichernde Datenmenge ohne Informationsverlust zu komprimieren. Der Temperatursensor lässt sich derart konfigurieren, dass er alle fünf Sekunden einen Wert erfasst und speichert beziehungsweise in die Cloud sendet.
Wenn wir davon ausgehen, dass es sich um die Außentemperatur handelt, die erfasst wird, muss man sich an dieser Stelle die folgenden Fragen stellen: Ist es sinnvoll, alle fünf Sekunden einen Temperaturwert zu messen oder auch zu speichern?
Zu häufiges Messen verringert die Lebensdauer des Sensors. Deshalb kann es ratsam sein, das Intervall zwischen zwei Messpunkten entsprechend anzupassen. Das richtige Intervall zu bestimmen, ist jedoch keinesfalls trivial: Ist es zu hoch gewählt, dann können eventuell interessante Beobachtungen verloren gehen. Wählt man hingegen ein sehr kleines Intervall, so verkürzt dies die Lebensdauer des Sensors und eventuell interessante Beobachtungen lassen sich in der Masse der Daten schwieriger identifizieren.
Oftmals hat man als Data Engineer nicht die Möglichkeit, direkt Einfluss auf den Sensor und dessen Messintervalle zu nehmen und muss daher die gelieferten Messdaten als gegeben hinnehmen. Man hat aber die Möglichkeit, die Verarbeitungszeit und die zu speichernde Datenmenge zu beeinflussen – ohne Informationsverlust.
Eine einfache Komprimierung könnte so aussehen, dass lediglich dann ein Wert vom Empfänger gespeichert wird, wenn sich der Messwert geändert hat – ansonsten wird der Messwert verworfen. Mit dem Hintergrundwissen, dass lediglich das Delta abgespeichert wird, können die verworfenen Messwerte mithilfe des Messintervalls rekonstruiert werden. Je nach Kompressionsalgorithmus lässt sich die zu speichernde Datenmenge um bis zu 90 % reduzieren. Das verkürzt auch die Verarbeitungszeit.
3. Zuverlässigkeit
Ein Sensor ist meist nicht selbst in der Lage, fehlerhafte Messwerte zu erkennen und entsprechende Gegenmaßnahmen einzuleiten. Das liegt an der meist geringen Rechenkapazität des Sensors, die für umfangreiche Analyseprozesse zur Identifizierung fehlerhafter Werte schlicht nicht ausreicht. Diese Aufgabe muss der Data Engineer während des Analyseprozesses übernehmen. Auch kann man nicht immer davon ausgehen, dass die Sensoren oder der Empfänger, der die Daten entgegennimmt, zuverlässig funktionieren.
4. Nicht alle Daten sind gleich
Nicht alle Daten lassen sich gleichermaßen erheben und auswerten. Grob unterscheidet man zwischen Cross-Sectional und Time-Series Data. Bei Cross-Sectional Data handelt es sich um Daten, die durch die Beobachtung vieler Objekte zum gleichen Zeitpunkt erhoben wurden. Diese Objekte können etwa Einzelpersonen, Firmen, Filialen oder Länder sein. Bei Zeitreihendaten wiederum handelt es sich um eine Sammlung von Beobachtungen zu einem einzelnen Objekt zu verschiedenen Zeitpunkten. In der Regel sind die Zeitabstände gleichmäßig verteilt, etwa alle 30 Minuten oder immer am ersten Tag des Monats. Ausnahmen bestätigen auch hier die Regel: Die Messungen können natürlich auch unregelmäßig erfolgen. Unser Feinstaubbeispiel fällt in diese Kategorie.Bei unserem Temperaturbeispiel verändern sich die Werte im Zeitverlauf meistens. Im Sommer erreicht die Temperatur gegen Mittag und Nachmittag meist ihren höchsten Wert und sinkt danach wieder. Anhand der zuvor gemessenen Werte können wir somit einen Trend für den Temperaturanstieg und -abstieg erkennen und wie stark dieser ausfällt. Das bedeutet, dass es keinen Sinn macht, sich zufällige Werte herauszunehmen und diese miteinander zu vergleichen, wie wir es bei Cross-Sectional Data getan haben – die Ansätze unterscheiden sich grundlegend voneinander.
Dadurch dass wir nun ein einzelnes Objekt über einen längeren Zeitraum beobachten, können wir im Gegensatz zu Cross-Sectional Data Trends und saisonale Effekte erkennen. Bei saisonalen Effekten handelt es sich um Entwicklungen, die sich in gewissen Abständen selbst wiederholen.
Hat man eine Gesetzmäßigkeit bzw. ein Muster gefunden, mit dem auch fehlerhafte oder fehlende Werte identifiziert werden können, so kann in Zukunft darauf reagiert werden. Mit anderen Worten, das gefundene Muster hat für die Zukunft keine Bedeutung mehr. So führt der Ersatz fehlerhafter Sensoren durch neue Geräte zu neuen Messergebnissen. Bei der Erstellung des Prognosemodells handelt es sich also um einen fortlaufenden Prozess.
5.Wenn Predictive Analytics, dann vorarbeiten!
Predictive Analytics sind Verfahren, mit denen auf Grundlage von Daten aus der Vergangenheit Vorhersagen über deren zukünftige Entwicklung getroffen werden können. Zum Einsatz kommen Techniken aus den Bereichen Statistik und Maschinenlernen. Dafür sind aber ein paar Vorarbeiten nötig. Um das Modell erstellen zu können, benötigt man Beobachtungswerte eines Prozesses über einen möglichst langen Zeitraum.
Sensordaten sind grundsätzlich gut geeignet, um Techniken aus dem Predictive-Analytics-Umfeld anzuwenden, da sie zum einen Informationen über einen Prozess über einen längeren Zeitraum bereitstellen und zum anderen je nach Messintervall in großer Menge vorliegen. Die in der Praxis am häufigsten angewandten Verfahren werden mit dem Begriff »überwachtes Lernen« überschrieben. Dieses Verfahren kann man sich so vorstellen: Ein Lehrer versucht seinem Schüler die Addition im Zahlenraum bis 100 beizubringen. Dazu nennt er ihm zwei Zahlen und dieser teilt ihm das seiner Meinung nach richtige Ergebnis mit. Der Lehrer ermittelt nun seinerseits das richtige Ergebnis und sagt es dem Schüler. Dieser kann nun anhand seines eigenen Ergebnisses und dem des Lehrers überprüfen, ob sein Vorgehen richtig oder falsch war. Ziel ist es also, aus einem gegebenen Input (hier die zwei Zahlen) den richtigen Output (hier das Ergebnis der Addition) abzuleiten. Dafür versucht der Schüler eine Gesetzmäßigkeit zu entwickeln, die sich auf den Sachverhalt anwenden lässt.
Um überwachtes Lernen anwenden zu können, müssen wir unsere Daten zuvor entsprechend anpassen. Dazu nutzen wir eine Technik, die sich »Sliding Window« nennt. Neben der Spalte Messwert, die den vorherzusagenden Wert enthält, existieren ebenfalls der zuvor gemessene Wert (Messwert t-1) und dessen Timestamp (Timestamp t-1) als Spalte. Dadurch, dass diese Informationen nun in einer Zeile stehen, lassen sich Verfahren aus dem Bereich überwachtes Lernen anwenden.
>> Fazit <<
Bei IoT Analytics handelt sich es keineswegs um eine Plug-and-Play-Technologie, sondern um ein komplexes Thema, bei dem eine Reihe von Besonderheiten beachtet werden muss. Die Implementierung einer IoT-Analyseanwendung setzt deshalb ein fundiertes Konzept und einen detaillierten Umsetzungsplan voraus.