Aplică modelul pe fluxul de date
Acum vei aplica pipeline-ul de învățare automată antrenat pe date în flux continuu și vei categoriza valorile imediat.
Vei folosi predict() pe mesajele primite pentru a determina categoria.
În funcție de rezultatul predicției, vei lua o decizie și vei închide ferestrele din casă (sau nu).
Reține că valoarea 1 înseamnă vreme bună, iar valoarea 0 semnifică vreme rea și rece.
În plus, pipeline-ul returnează un array de predicții. Deoarece ai transmis un singur element, trebuie să accesezi primul element folosind category[0].
Funcția close_window() se ocupă de asta pentru tine și va înregistra și datele pentru analize ulterioare.
pandas ca pd și json au fost preîncărcate în sesiune, iar modelul este disponibil ca pl.
Acest exercițiu face parte din cursul
Analiza datelor IoT în Python
Instrucțiuni pentru exercițiu
- Parsează dicționarul într-un DataFrame pandas cu
DataFrame.from_records(), folosind"timestamp"ca index șicolsca coloane. - Determină categoria acestei înregistrări folosind
predict()din obiectul pipeline și atribuie rezultatul variabileicategory. - Apelează
close_window()cu DataFrame-uldfca prim argument șicategoryca al doilea argument.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)