Maschinelles Lernen auf IoT-Sensoren anwenden

Maschinelles Lernen auf IoT-Sensoren anwenden

  • Norbert Krupa
    Norbert has over 10 years’ experience in the data space working in different industries and various roles; from business intelligence to database administration, consulting as well as architecting high volume, distributed systems.

Wenn Sie bereits unsere Demo zur Analyse von Streaming-IoT-Daten (Internet of Things) in Echtzeit gesehen haben, fragen Sie sich vielleicht, wie wir unser Klassifizierungsmodell trainiert haben, damit es Benutzeraktivitäten vorhersagen kann. Sprechen wir zuerst über den Hintergrund der Demo, wie wir die Daten klassifizieren und zum Schluss über die Auswahl eines passenden Modells.

Hintergrund

Mit der IoT-Demo möchten wir Talends Funktionen für Echtzeit-Streaming und maschinelles Lernen (ML) zeigen. Dazu erhält Talend Beschleunigungssensordaten von Mobiltelefonen in Echtzeit, übermittelt die Daten in eine Nachrichtenwarteschlange und wendet maschinelles Lernen an, um die Daten für die Analyse zu klassifizieren. Habe ich bereits erwähnt, dass dies alles ohne Handcodierung erfolgt?

Bei der Verarbeitung wird ein REST-Endpunkt mit Talend erstellt, an den die Sensordaten gesendet werden können. Die Sensordaten werden geparst und in eine Nachrichtenwarteschlange übermittelt (Kafka). Sobald die Daten in der Nachrichtenwarteschlange sind, liest ein Talend Big Data Streamingjob die Nachrichten mit einem Sliding Window aus der Warteschlange, leitet die Daten über ein ML-Modell weiter und bereitet die Daten für die Visualisierung auf.

Grafische Darstellung der Daten

Die zu verarbeitenden Daten kommen von einem Beschleunigungssensor auf einem Mobilgerät. Genauer gesagt verarbeiten wir die lineare Beschleunigung der X-, Y- und Z-Achsen. Wenn wir eine schnelle Analyse von einem Graphen der Sensordaten durchführen, bekommen wir Folgendes angezeigt:

Die Beschleunigung der einzelnen Achsen wird in m/s2 dargestellt. Wir können sehen, dass es drei Phasen mit jeweils geringer, hoher und mittlerer Aktivität gibt. Um dies in ein ML-Modell zu übersetzen, erwarten wir vom gewählten Modell, dass es die Sensordaten als gering mittel oder hoch klassifizieren kann. Beim maschinellen Lernen bezeichnet Klassifizierung die Identifizierung einer Kategorie entsprechend den jeweiligen Beobachtungen. Um mit der Auswahl eines Klassifizierungsmodells von Spark MLib zu beginnen, beschäftigen wir uns zunächst mit einigen gängigen Modellen: Naive Bayes, logistische Regression und Random Forest.

Modellauswahl

Das Naive Bayes-Modell wird gewöhnlich eher zur Textklassifizierung verwendet, aber da wir es mit Dezimalzahlen zu tun haben, ist es hier nicht geeignet. Das nächste Modell, die logistische Regression, kann keine Mehrklassen-Klassifizierung realisieren, die wir für geringe, mittlere und hohe Aktivität brauchen. Zu guter Letzt erlaubt uns das Random Forest-Modell eine Klassifizierung für jede einzelne Achse. Es ist auch bei großen Datensätzen effizient und kann Tausende von Eingabevariablen bewältigen.

Das Random Forest-Modell nimmt den Trainingssatz und führt ein zufälliges Sampling durch, um Teilsätze von Daten oder zufällige „Bäume“ zu erstellen. Nachdem viele Bäume geniert wurden, erstellt es einen zufälligen „Wald“. Viele Bäume zu haben bietet den Vorteil, dass wir eine genauere Vorhersage der Klassifizierung für die Daten erhalten. Wenn zum Beispiel sieben von zehn Bäumen im Wald nahelegen, dass ein bestimmtes Sensorereignis „Gehen“ bedeutet, wird die Klassifizierung erwartungsgemäß „Gehen“ sein.

Die Talend Real-Time Big Data Platform kommt mit vorgefertigten Komponenten für maschinelles Lernen. Der erste Schritt für den Einsatz des Random Forest-Modells ist es, mit manuellen Klassifikationen zu üben. Das heißt, wir nehmen die Daten aus unserer schnellen Analyse und kennzeichnen die Aktivitäten. Dieser Trainingssatz wird von einem Modell-Encoder für die Ausgabe eines Modells verwendet, mit dem die Aktivität während des Streamings klassifiziert wird. Die Kennzeichnung im Trainingssatz wird mit menschlicher Aktivität assoziiert, insbesondere „Ruhen“, „Gehen“ und „Laufen“. Die Trainingssätze sehen so aus:

Der konkrete Trainingssatz, der für die Erstellung dieses Modells verwendet wurde, umfasste rund 150 Ereignisse für jede Aktivität. Mit dem generierten Modell wurden die manuell klassifizierten Kennzeichnungen mit der Ausgabe verglichen. Die erzielte Genauigkeit lag erwartungsgemäß bei 97 %.

Um die Genauigkeit des ML-Modells zu bewerten, verwenden wir eine k-fache Kreuzvalidierung und führen 10 individuelle Lernübungen durch. Jede Übung nimmt einen Teil des Trainingssatzes, der danach als Validierungsdaten verwendet wird. Bei diesem Verfahren lag die Übereinstimmung mit unserem gewählten Modell bei 95 %. In einem unserer nächsten Blogeinträge beschäftigen wir uns mit diesem Validierungsverfahren und wie es mit Talend Studio erstellt wird.

Im letzten Schritt verwenden wir das Modell im Streamingteil der Demo, um unsere Daten zu klassifizieren. Vor der Datenklassifizierung können Sie es erfassen und in einem Archiv für zukünftige Analysen speichern. Die klassifizierten Daten werden anschließend für die Visualisierung aufbereitet.

Video ansehen: Analytics Dashboard — Talend IoT Demo (Analyse-Dashboard – Talend IoT-Demo).

Resümee

Das Bemerkenswerte an dieser Übung ist, dass nichts per Hand codiert werden musste. Alles wurde mit einer grafische Benutzerumgebung konzipiert, von der Erstellung eines REST-Services zur Erfassung der Daten bis zum Spark Streaming-Job, der ein ML-Modell implementiert. Wenn Sie die Demo noch nicht gesehen haben, kontaktieren Sie uns und erleben Sie selbst, wie einfach Sie Talend für Ihr nächstes Big Data-Projekt einsetzen können.

An der Diskussion teilnehmen

0 Comments

Hinterlasse eine Antwort

Your email address will not be published. Required fields are marked *