Terapkan model ke aliran data
Sekarang mari terapkan Pipeline Machine Learning yang sudah Anda latih pada data streaming, dan kategorikan nilainya secara langsung.
Anda kemudian akan menggunakan predict() pada pesan yang masuk untuk menentukan kategorinya.
Berdasarkan hasil prediksi, Anda akan mengambil tindakan, yakni menutup jendela di rumah Anda (atau tidak).
Ingat bahwa kategori 1 berarti cuaca bagus, sedangkan kategori 0 menandakan cuaca buruk dan dingin.
Selain itu, pipeline mengembalikan sebuah array prediksi. Karena Anda hanya memasukkan satu elemen, Anda perlu mengakses elemen pertama menggunakan category[0].
Fungsi close_window() akan menanganinya untuk Anda, dan juga akan mencatat rekaman tersebut untuk ditelaah lebih lanjut.
pandas sebagai pd dan json telah dimuat sebelumnya dalam sesi ini untuk Anda, dan model tersedia sebagai pl.
Latihan ini merupakan bagian dari kursus
Menganalisis Data IoT dengan Python
Instruksi latihan
- Uraikan dictionary menjadi pandas DataFrame dengan
DataFrame.from_records()menggunakan"timestamp"sebagai indeks, dancolssebagai kolom. - Tentukan kategori dari catatan ini dengan menggunakan
predict()dari objek pipeline dan simpan hasilnya kecategory. - Panggil
close_window()dengan DataFramedfsebagai argumen pertama, dancategorysebagai argumen ke-2.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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)