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
Instrucciones del ejercicio
- Analiza el diccionario en un DataFrame de pandas con
DataFrame.from_records()usando"timestamp"como índice ycolscomo columnas. - Determina la categoría de este registro usando
predict()del objeto pipeline y asigna el resultado acategory. - Llama a
close_window()con el DataFramedfcomo primer argumento ycategorycomo 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)