Zastosowanie modelu do strumienia danych
Teraz zastosuj wytrenowany potok uczenia maszynowego do danych strumieniowych i od razu klasyfikuj napływające wartości.
Użyj metody predict() na przychodzących wiadomościach, aby określić kategorię.
Na podstawie wyniku predykcji podejmij działanie – zamknij okna w domu (lub nie).
Pamiętaj, że kategoria 1 oznacza dobrą pogodę, natomiast kategoria 0 oznacza złą, zimną pogodę.
Potok zwraca tablicę predykcji. Ponieważ przekazujesz tylko jeden element, musisz odwołać się do pierwszego elementu tablicy za pomocą category[0].
Funkcja close_window() zajmie się tym za ciebie – dodatkowo zapisze rekord do dalszej analizy.
Biblioteka pandas jako pd oraz json są już wczytane w sesji, a model jest dostępny jako pl.
To ćwiczenie jest częścią kursu
Analiza danych IoT w Pythonie
Instrukcje do ćwiczenia
- Przekształć słownik w DataFrame biblioteki pandas za pomocą
DataFrame.from_records(), używając"timestamp"jako indeksu orazcolsjako kolumn. - Określ kategorię rekordu, wywołując
predict()na obiekcie potoku, i przypisz wynik do zmiennejcategory. - Wywołaj funkcję
close_window(), przekazując DataFramedfjako pierwszy argument orazcategoryjako drugi argument.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)