开始使用免费开始使用

将模型应用到数据流

现在把您训练好的机器学习 Pipeline 应用于流式数据,并立即对数值进行分类。

随后,您将对接收到的消息使用 predict() 来判断其所属类别。 根据预测结果进行相应操作:关闭家里的窗户(或不关闭)。

请记住,类别 1 表示天气良好,而类别 0 表示天气恶劣且寒冷。

另外,pipeline 会返回一个预测数组。由于您只传入了一个元素,因此需要使用 category[0] 访问第 1 个元素。

函数 close_window() 会为您处理此操作,并会将该记录写入日志以便后续分析。

pandas 已作为 pd 以及 json 预加载到当前会话中,模型对象为 pl

本练习是课程的一部分

用 Python 分析 IoT 数据

查看课程

练习说明

  • 使用 DataFrame.from_records() 将该字典解析为一个 pandas DataFrame,使用 "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)
编辑并运行代码