Aan de slagBegin gratis

Model toepassen op datastroom

Laten we je getrainde Machine Learning-pijplijn nu toepassen op streaming data en de waarden direct categoriseren.

Gebruik daarna predict() op de binnenkomende berichten om de categorie te bepalen. Op basis van het resultaat van de voorspelling onderneem je actie en sluit je de ramen in je huis (of niet).

Onthoud dat categorie 1 goed weer betekent, terwijl categorie 0 slecht, koud weer aangeeft.

Bovendien geeft de pijplijn een array met voorspellingen terug. Omdat je slechts één element hebt doorgegeven, moet je het eerste element benaderen met category[0].

De functie close_window() handelt dit voor je af en logt bovendien het record voor verder onderzoek.

pandas als pd en json zijn al voor je ingeladen in de sessie, en het model is beschikbaar als pl.

Deze oefening maakt deel uit van de cursus

IoT-gegevens analyseren in Python

Bekijk cursus

Oefeninstructies

  • Parseer de dictionary naar een pandas DataFrame met DataFrame.from_records() met "timestamp" als index en cols als kolommen.
  • Bepaal de categorie van dit record met predict() van het pipeline-object en ken het resultaat toe aan category.
  • Roep close_window() aan met de DataFrame df als eerste argument en category als tweede argument.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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 bewerken en uitvoeren