Aplicar o modelo ao fluxo de dados
Agora vamos aplicar seu Pipeline de Machine Learning treinado aos dados em fluxo e categorizar os valores imediatamente.
Você vai usar predict() nas mensagens recebidas para determinar a categoria.
Com base no resultado da previsão, você vai tomar uma ação: fechar as janelas da sua casa (ou não).
Lembre-se de que a categoria 1 indica clima bom, enquanto a categoria 0 significa clima ruim e frio.
Além disso, o pipeline retorna um array de previsões. Como você passou apenas um elemento, precisa acessar o primeiro elemento usando category[0].
A função close_window() fará isso por você e também registrará o registro para estudo posterior.
pandas como pd e json já foram pré-carregados na sessão para você, e o modelo está disponível como pl.
Este exercício faz parte do curso
Analisando Dados de IoT em Python
Instruções do exercício
- Converta o dicionário em um DataFrame do pandas com
DataFrame.from_records(),"timestamp"como índice ecolscomo colunas. - Determine a categoria deste registro usando
predict()do objeto pipeline e atribua o resultado acategory. - Chame
close_window()com o DataFramedfcomo primeiro argumento ecategorycomo o segundo argumento.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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)