Mulai sekarangMulai gratis

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

Lihat Kursus

Instruksi latihan

  • Uraikan dictionary menjadi pandas DataFrame dengan DataFrame.from_records() menggunakan "timestamp" sebagai indeks, dan cols sebagai kolom.
  • Tentukan kategori dari catatan ini dengan menggunakan predict() dari objek pipeline dan simpan hasilnya ke category.
  • Panggil close_window() dengan DataFrame df sebagai argumen pertama, dan category sebagai 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)
Edit dan Jalankan Kode