Kom igångKom igång gratis

Tillämpa modellen på dataströmmen

Nu ska du tillämpa din tränade maskininlärningspipeline på strömmande data och kategorisera värdena direkt.

Du använder predict() på inkommande meddelanden för att fastställa kategorin. Baserat på prediktionens resultat vidtar du åtgärder och stänger fönstren i ditt hus – eller låter bli.

Kom ihåg att kategori 1 betyder bra väder, medan kategori 0 innebär dåligt, kallt väder.

Pipelinen returnerar en array med prediktioner. Eftersom du skickade in bara ett element behöver du hämta det första elementet med category[0].

Funktionen close_window() hanterar detta åt dig och loggar dessutom posten för vidare analys.

pandas som pd och json har förinslästs i sessionen, och modellen finns tillgänglig som pl.

Den här övningen är en del av kursen

Analysera IoT-data i Python

Visa kurs

Övningsinstruktioner

  • Omvandla dictionaryn till en pandas DataFrame med DataFrame.from_records(), med "timestamp" som index och cols som kolumner.
  • Bestäm kategorin för denna post genom att använda predict() från pipeline-objektet och tilldela resultatet till category.
  • Anropa close_window() med DataFrame:n df som första argument och category som andra argument.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod