डेटा स्ट्रीम पर मॉडल लागू करें
अब आइए आपने जो मशीन लर्निंग Pipeline प्रशिक्षित की है, उसे स्ट्रीमिंग डेटा पर लागू करें और मानों को तुरंत कैटेगराइज़ करें.
इसके बाद आप आने वाले मैसेज पर predict() का उपयोग करके कैटेगरी तय करेंगे.
भविष्यवाणी के परिणाम के आधार पर आप कार्रवाई करेंगे, और अपने घर की खिड़कियाँ बंद करेंगे (या नहीं).
ध्यान रखें कि कैटेगरी 1 का मतलब अच्छा मौसम है, जबकि कैटेगरी 0 खराब, ठंडा मौसम दर्शाता है.
साथ ही, पाइपलाइन भविष्यवाणियों का एक array लौटाती है. क्योंकि आपने केवल एक एलिमेंट पास किया है, आपको category[0] का उपयोग करके पहले एलिमेंट तक पहुँचना होगा.
फ़ंक्शन close_window() यह आपके लिए संभालेगा, और आगे के अध्ययन के लिए रिकॉर्ड को लॉग भी करेगा.
pandas को pd नाम से और json को आपके सेशन में पहले से लोड किया गया है, और मॉडल pl के रूप में उपलब्ध है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में IoT डेटा का विश्लेषण
अभ्यास निर्देश
- डिक्शनरी को pandas DataFrame में पार्स करें,
DataFrame.from_records()के साथ,"timestamp"को index के रूप में औरcolsको columns के रूप में सेट करें. - इस रिकॉर्ड की कैटेगरी निर्धारित करने के लिए पाइपलाइन ऑब्जेक्ट के
predict()का उपयोग करें और परिणाम कोcategoryमें असाइन करें. close_window()को कॉल करें, जिसमें पहला आर्ग्युमेंट DataFramedfहो और दूसरा आर्ग्युमेंट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)