Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Przekształć słownik w DataFrame biblioteki pandas za pomocą DataFrame.from_records(), używając "timestamp" jako indeksu oraz cols jako kolumn.
  • Określ kategorię rekordu, wywołując predict() na obiekcie potoku, i przypisz wynik do zmiennej category.
  • Wywołaj funkcję close_window(), przekazując DataFrame df jako pierwszy argument oraz category jako 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)
Edytuj i uruchom kod