LoslegenKostenlos loslegen

Modell auf Datenstrom anwenden

Wenden wir jetzt deine trainierte Machine-Learning-Pipeline auf Streaming-Daten an und kategorisieren die Werte sofort.

Du verwendest dann predict() auf den eingehenden Nachrichten, um die Kategorie zu bestimmen. Abhängig vom Ergebnis der Vorhersage ergreifst du Maßnahmen und schließt die Fenster in deinem Haus (oder eben nicht).

Denk daran: Kategorie 1 bedeutet gutes Wetter, Kategorie 0 steht für schlechtes, kaltes Wetter.

Außerdem gibt die Pipeline ein Array von Vorhersagen zurück. Da du nur ein Element übergeben hast, musst du mit category[0] auf das erste Element zugreifen.

Die Funktion close_window() übernimmt das für dich und protokolliert den Datensatz zusätzlich für eine spätere Auswertung.

pandas als pd und json wurden bereits für dich in die Session geladen, und das Modell ist als pl verfügbar.

Diese Übung ist Teil des Kurses

IoT-Daten in Python analysieren

Kurs anzeigen

Anleitung zur Übung

  • Parse das Dictionary in ein pandas-DataFrame mit DataFrame.from_records(), verwende "timestamp" als Index und cols als Spalten.
  • Bestimme die Kategorie dieses Datensatzes mit predict() aus dem Pipeline-Objekt und weise das Ergebnis category zu.
  • Rufe close_window() mit dem DataFrame df als erstem Argument und category als zweitem Argument auf.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

def model_subscribe(client, userdata, message):
    data = json.loads(message.payload)
    # Parse to DataFrame
    df = pd.____.____([data], index=____, columns=____)
    # Predict result
    category = ____
    if category[0] < 1:
        # Call business logic
        ____
    else:
        print("Nice Weather, nothing to do.")  

# Subscribe model_subscribe to MQTT Topic
subscribe.callback(model_subscribe, topic, hostname=MQTT_HOST)
Code bearbeiten und ausführen