Appliquer le modèle au flux de données
Appliquons maintenant votre Pipeline de Machine Learning entraîné aux données en flux, 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 en fermant (ou non) les fenêtres de votre maison.
Rappelez-vous que la catégorie 1 correspond à une bonne météo, tandis que la catégorie 0 indique une météo mauvaise et froide.
De plus, le pipeline renvoie un tableau de prédictions. Comme vous n’avez passé qu’un seul élément, vous devez accéder au premier élément avec category[0].
La fonction close_window() s’en charge pour vous et journalise également l’enregistrement pour étude ultérieure.
pandas sous l’alias pd et json ont été préchargés dans la session pour vous, et le modèle est disponible sous le nom pl.
Cet exercice fait partie du cours
Analyzing IoT Data in Python
Instructions
- Analysez le dictionnaire dans un DataFrame pandas avec
DataFrame.from_records()en utilisant"timestamp"comme index etcolscomme colonnes. - Déterminez la catégorie de cet enregistrement en utilisant
predict()de l’objet pipeline et affectez 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 cet exemple de code.
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)