Aplikace modelu na datový proud
Teď aplikujeme natrénovaný pipeline strojového učení na streamovaná data a okamžitě zařadíme hodnoty do kategorií.
Na příchozí zprávy použiješ predict() a určíš jejich kategorii.
Podle výsledku predikce pak podnikneš akci – zavřeš okna v domě (nebo ne).
Pamatuj, že kategorie 1 znamená dobré počasí, zatímco kategorie 0 označuje špatné, chladné počasí.
Pipeline vrací pole predikcí. Protože jsi předal/a pouze jeden prvek, musíš k němu přistoupit pomocí category[0].
Funkce close_window() to za tebe vyřeší a záznam navíc uloží pro další analýzu.
pandas jako pd a json jsou v relaci předem načteny a model je dostupný jako pl.
Toto cvičení je součástí kurzu
Analýza dat z IoT v Pythonu
Pokyny k cvičení
- Převeď slovník na pandas DataFrame pomocí
DataFrame.from_records()s"timestamp"jako indexem acolsjako sloupci. - Urči kategorii záznamu pomocí
predict()z objektu pipeline a výsledek ulož do proměnnécategory. - Zavolej
close_window()s DataFramedfjako prvním argumentem acategoryjako druhým argumentem.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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)