पृष्ठभूमि
मैं ऊर्जा मीटर रीडिंग के एक समय श्रृंखला डेटा सेट पर काम कर रहा हूं। श्रृंखला की लंबाई मीटर से भिन्न होती है - कुछ के लिए मेरे पास कई साल हैं, अन्य केवल कुछ महीने हैं, आदि कई महत्वपूर्ण मौसमीता प्रदर्शित करते हैं, और अक्सर कई परतें - दिन, सप्ताह या वर्ष के भीतर।
जिन चीजों पर मैं काम कर रहा हूं उनमें से एक इन टाइम सीरीज़ की क्लस्टरिंग है। मेरा काम फिलहाल अकादमिक है, और जब मैं डेटा का अन्य विश्लेषण भी कर रहा हूं, तो मेरे पास कुछ क्लस्टरिंग करने के लिए एक विशिष्ट लक्ष्य है।
मैंने कुछ प्रारंभिक कार्य किए, जहाँ मैंने विभिन्न विशेषताओं (वीकेंड्स पर उपयोग किए जाने वाले प्रतिशत बनाम कार्यदिवस, अलग-अलग समय ब्लॉकों में उपयोग किए जाने वाले प्रतिशत आदि) की गणना की। मैं तब अलग-अलग श्रृंखलाओं के बीच की दूरी, और अंतर मूल्यों के आधार पर क्लस्टरिंग प्राप्त करने के लिए डायनामिक टाइम वार्पिंग (DTW) का उपयोग करने के लिए आगे बढ़ा, और मुझे इससे संबंधित कई कागजात मिले हैं।
सवाल
क्या एक विशिष्ट श्रृंखला में मौसमी बदलाव से मेरी क्लस्टरिंग गलत हो जाएगी? और यदि हां, तो मैं इससे कैसे निपटूं?
मेरी चिंता यह है कि DTW द्वारा प्राप्त की गई दूरियां उन मामलों में भ्रामक हो सकती हैं जिनमें समय श्रृंखला में पैटर्न बदल गया है। इससे गलत क्लस्टरिंग हो सकती है।
उपरोक्त स्पष्ट होने पर, इन उदाहरणों पर विचार करें:
उदाहरण 1
एक मीटर में मध्यरात्रि से 8 बजे तक कम रीडिंग होती है, फिर रीडिंग अगले घंटे के लिए तेजी से बढ़ जाती है और 9AM से 5PM तक उच्च रहती है, फिर अगले घंटे में तेजी से घट जाती है और फिर 6PM से आधी रात तक कम रहती है। मीटर इस पैटर्न को लगातार हर महीने कई महीनों तक जारी रखता है, लेकिन फिर एक ऐसे पैटर्न में बदल जाता है जहां रीडिंग बस पूरे दिन एक सुसंगत स्तर पर रहती है।
उदाहरण 2
एक मीटर हर महीने लगभग समान मात्रा में ऊर्जा का उपभोग करता है। कई वर्षों के बाद, यह एक ऐसे पैटर्न में बदल जाता है, जहां सामान्य राशि पर लौटने से पहले गर्मी के महीनों के दौरान ऊर्जा का उपयोग अधिक होता है।
संभव निर्देश
- मुझे आश्चर्य है कि क्या मैं पूरे समय की श्रृंखला की तुलना करना जारी रख सकता हूं, लेकिन उन्हें विभाजित करें और उन्हें एक अलग श्रृंखला के रूप में मानें यदि पैटर्न काफी बदलता है। हालाँकि, ऐसा करने के लिए मुझे ऐसे परिवर्तनों का पता लगाने में सक्षम होना चाहिए। इसके अलावा, मुझे अभी पता नहीं है कि यह एक उपयुक्त तरीका है या डेटा के साथ काम कर रहा है।
- मैंने डेटा को विभाजित करने और इसे कई अलग-अलग समय श्रृंखलाओं के रूप में भी माना है। उदाहरण के लिए, मैं हर दिन / मीटर संयोजन को एक अलग श्रृंखला के रूप में मान सकता था। हालाँकि, अगर मैं साप्ताहिक / मासिक / वार्षिक पैटर्न पर विचार करना चाहता हूँ तो मुझे भी ऐसा ही करने की आवश्यकता है। मुझे लगता है कि यह काम करेगा, लेकिन यह संभावित रूप से काफी महत्वपूर्ण है और मुझे इस रास्ते से नीचे जाने से नफरत होगी अगर कोई बेहतर तरीका है जो मुझे याद आ रहा है।
आगे के नोट
ये ऐसी चीजें हैं जो टिप्पणियों में आई हैं, या जिन चीजों के बारे में मैंने टिप्पणियों के कारण सोचा है, वे प्रासंगिक हो सकती हैं। मैं उन्हें यहाँ रख रहा हूँ ताकि लोगों को प्रासंगिक जानकारी प्राप्त करने के लिए सब कुछ न पढ़ना पड़े।
- मैं पायथन में काम कर रहा हूं, लेकिन उन जगहों के लिए खस्ता है जहां आर अधिक उपयुक्त है। मैं जरूरी नहीं कि एक पायथन जवाब की तलाश कर रहा हूं - अगर किसी के पास इसका व्यावहारिक जवाब है कि मुझे क्या करना चाहिए तो मुझे कार्यान्वयन विवरण का पता लगाने में खुशी होगी।
- मेरे पास बहुत सारे "रफ ड्राफ्ट" कोड काम कर रहे हैं - मैंने कुछ DTW रन किए हैं, मैंने विभिन्न प्रकार के क्लस्टरिंग के एक जोड़े को किया है, आदि मुझे लगता है कि मैं काफी हद तक उस दिशा को समझता हूं जो मैं ले रहा हूं, और मैं ' मी वास्तव में इस बात से संबंधित है कि मैं दूरी खोजने, क्लस्टरिंग चलाने आदि से पहले अपने डेटा को कैसे संसाधित करता हूं, यह देखते हुए, मुझे संदेह है कि उत्तर वही होगा जो श्रृंखला के बीच की दूरी की गणना डीटीडब्ल्यू या एक सरल यूक्लिडियन दूरी (ईडी) के माध्यम से की जाती है।
- मुझे ये पेपर विशेष रूप से टाइम सीरीज़ और DTW पर सूचनात्मक लगे हैं और यदि विषय क्षेत्र के लिए कुछ पृष्ठभूमि की आवश्यकता हो तो वे मददगार हो सकते हैं: http://www.cs.ucr.edu/~eamonn/selected_publications.htm