Appliquer le modèle au flux de données
Appliquons maintenant votre Pipeline de Machine Learning entraîné à des données en continu afin de catégoriser les valeurs immédiatement.
Vous utiliserez ensuite predict() sur les messages entrants pour déterminer la catégorie.
Selon le résultat de la prédiction, vous passerez à l'action et fermerez les fenêtres de votre maison (ou non).
Rappelez-vous que la catégorie 1 correspond à du beau temps, tandis que la catégorie 0 indique un temps mauvais et froid.
De plus, le pipeline renvoie un tableau de prédictions. Comme vous n'avez transmis qu'un seul élément, vous devez accéder au premier élément avec category[0].
La fonction close_window() s'en chargera pour vous et consignera également l'enregistrement pour analyse ultérieure.
pandas sous pd et json ont été préchargés dans la session pour vous, et le modèle est accessible sous pl.
Cette activité fait partie du cours
Analyse de données IoT avec Python
Instructions de l’exercice
- Analysez le dictionnaire dans un DataFrame pandas avec
DataFrame.from_records(),"timestamp"comme index etcolscomme colonnes. - Déterminez la catégorie de cet enregistrement en utilisant
predict()de l'objet pipeline et assignez le résultat àcategory. - Appelez
close_window()avec le DataFramedfcomme premier argument etcategorycomme deuxième argument.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)