開始使用免費開始

將模型套用到資料串流

現在把你已訓練完成的機器學習 Pipeline 套用到串流資料,並立即為每筆數值分類。

接著對進來的訊息使用 predict() 來判定其類別。 根據預測結果採取動作,關閉你家裡的窗戶(或不關)。

記住,類別 1 代表天氣良好,而類別 0 代表天氣不佳、寒冷。

另外,pipeline 會回傳一個預測陣列。由於你只傳入一個元素,需要用 category[0] 取得第一個元素。

close_window() 函式會為你處理這件事,並另外將這筆紀錄寫入日誌以便後續分析。

pandas 已以 pd 載入,json 也已預先載入,模型以 pl 提供可用。

本練習屬於課程

使用 Python 分析 IoT 資料

檢視課程

練習說明

  • 將字典解析為 pandas 的 DataFrame:使用 DataFrame.from_records(),以 "timestamp" 作為索引,並以 cols 作為欄位。
  • 使用 pipeline 物件的 predict() 來判定此筆紀錄的類別,並將結果指定給 category
  • 呼叫 close_window(),將 DataFrame df 作為第一個引數,category 作為第二個引數。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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)
編輯並執行程式碼