ComenzarEmpieza gratis

Aplicar el modelo al flujo de datos

Ahora vamos a aplicar tu Pipeline de Machine Learning entrenado a datos en streaming y a categorizar los valores al instante.

Después, usarás predict() sobre los mensajes entrantes para determinar la categoría. Según el resultado de la predicción, tomarás una acción: cerrar las ventanas de tu casa (o no).

Recuerda que la categoría 1 indica buen tiempo, mientras que la categoría 0 significa mal tiempo, frío.

Además, el pipeline devuelve un array de predicciones. Como solo has pasado un elemento, necesitas acceder al primero usando category[0].

La función close_window() se encargará de esto por ti y, además, registrará el registro para estudiarlo más adelante.

pandas como pd y json ya se han precargado en la sesión para ti, y el modelo está disponible como pl.

Este ejercicio forma parte del curso

Análisis de datos de IoT en Python

Ver curso

Instrucciones del ejercicio

  • Analiza el diccionario en un DataFrame de pandas con DataFrame.from_records() usando "timestamp" como índice y cols como columnas.
  • Determina la categoría de este registro usando predict() del objeto pipeline y asigna el resultado a category.
  • Llama a close_window() con el DataFrame df como primer argumento y category como segundo argumento.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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 y ejecutar código