ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Converta o dicionário em um DataFrame do pandas com DataFrame.from_records(), "timestamp" como índice e cols como colunas.
  • Determine a categoria deste registro usando predict() do objeto pipeline e atribua o resultado a category.
  • Chame close_window() com o DataFrame df como primeiro argumento e category como 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)
Editar e executar o código