Bắt đầu ngayBắt đầu miễn phí

Áp dụng mô hình cho luồng dữ liệu

Giờ hãy áp dụng Pipeline Machine Learning mà bạn đã huấn luyện lên dữ liệu streaming và phân loại giá trị ngay lập tức.

Sau đó bạn sẽ dùng predict() trên các thông điệp đi vào để xác định category. Dựa trên kết quả dự đoán, bạn sẽ hành động: đóng cửa sổ trong nhà (hoặc không).

Nhớ rằng category 1 nghĩa là thời tiết tốt, còn category 0 là thời tiết xấu, lạnh.

Ngoài ra, pipeline trả về một mảng các dự đoán. Vì bạn chỉ truyền vào một phần tử, bạn cần truy cập phần tử đầu tiên bằng category[0].

Hàm close_window() sẽ xử lý việc này giúp bạn, đồng thời ghi log bản ghi để nghiên cứu thêm.

pandas với bí danh pdjson đã được nạp sẵn trong phiên làm việc, và mô hình có sẵn dưới tên pl.

Bài tập này là một phần của khóa học

Phân tích dữ liệu IoT bằng Python

Xem khóa học

Hướng dẫn bài tập

  • Phân tích dict thành một pandas DataFrame bằng DataFrame.from_records() với "timestamp" làm index và cols làm các cột.
  • Xác định category của bản ghi này bằng cách dùng predict() từ đối tượng pipeline và gán kết quả cho category.
  • Gọi close_window() với DataFrame df là đối số thứ nhất và category là đối số thứ hai.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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)
Chỉnh sửa và Chạy Mã