Modeli veri akışına uygula
Şimdi, eğittiğin Machine Learning Pipeline'ını akış verisine uygulayalım ve değerleri anında kategorize edelim.
Gelen iletilerin kategorisini belirlemek için predict() kullanacaksın.
Tahmin sonucuna göre aksiyon alacak ve evindeki pencereleri kapatacaksın (ya da kapatmayacaksın).
Unutma: kategori 1 iyi havayı, kategori 0 ise kötü, soğuk havayı ifade eder.
Ayrıca, pipeline bir tahmin dizisi döndürür. Yalnızca tek bir öğe verdiğin için ilk öğeye category[0] ile erişmen gerekir.
close_window() fonksiyonu bunu senin için halledecek ve ek olarak kaydı daha sonra incelenmek üzere günlüğe yazacaktır.
Oturumda pandas pd olarak ve json önceden yüklendi, model ise pl olarak hazır.
Bu egzersiz
Python ile IoT Verilerini Analiz Etmek
kursunun bir parçasıdırEgzersiz talimatları
- Sözlüğü,
DataFrame.from_records()ile bir pandas DataFrame'ine ayrıştır;"timestamp"indeks olsun ve sütunlarcolsolsun. - Bu kaydın kategorisini, pipeline nesnesindeki
predict()ile belirle ve sonucucategorydeğişkenine ata. close_window()fonksiyonunu, ilk argüman olarakdf, ikinci argüman olarakcategoryile çağır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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)