LoslegenKostenlos starten

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

<Kurs>IoT-Daten in Python analysieren</Kurs>
Kurs ansehen

Übungsanweisungen

  • 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 praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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