समय श्रृंखला सुविधाएँ उत्पन्न करने के लिए 10 पायथन वन-लाइनर्स

Latest Technology, (लेटेस्ट टेक न्यूज़) Gadget (गैजेट्स) …
समय श्रृंखला सुविधाएँ उत्पन्न करने के लिए 10 पायथन वन-लाइनर
परिचय
समय श्रृंखला डेटा प्रभावी और व्यावहारिक पूर्वानुमान मॉडल बनाने के लिए आमतौर पर गहन समझ की आवश्यकता होती है। समय श्रृंखला पूर्वानुमान में दो प्रमुख गुण महत्वपूर्ण हैं: प्रतिनिधित्व और ग्रैन्युलैरिटी.
- प्रतिनिधित्व में कच्चे अस्थायी डेटा – जैसे दैनिक या प्रति घंटा माप – को सूचनात्मक पैटर्न में बदलने के लिए सार्थक दृष्टिकोण का उपयोग करना शामिल है
- ग्रैन्युलैरिटी यह विश्लेषण करने के बारे में है कि ऐसे पैटर्न समय-समय पर होने वाली विविधताओं को कितनी सटीकता से पकड़ते हैं।
एक ही सिक्के के दो पहलू होने के कारण, उनका अंतर सूक्ष्म है, लेकिन एक बात निश्चित है: दोनों के माध्यम से हासिल किया जाता है फ़ीचर इंजीनियरिंग.
यह आलेख कच्चे समय श्रृंखला डेटा में अंतर्निहित विभिन्न विशेषताओं और गुणों के आधार पर समय श्रृंखला सुविधाओं को उत्पन्न करने के लिए 10 सरल पायथन वन-लाइनर प्रस्तुत करता है। इन वन-लाइनर्स का उपयोग अलग-अलग या संयोजन में किया जा सकता है ताकि आपको अधिक जानकारीपूर्ण डेटासेट बनाने में मदद मिल सके जो आपके डेटा के अस्थायी व्यवहार के बारे में बहुत कुछ बताता है – यह कैसे विकसित होता है, इसमें कैसे उतार-चढ़ाव होता है, और यह समय के साथ कौन से रुझान प्रदर्शित करता है।
ध्यान दें कि हमारे उदाहरण उपयोग करते हैं पांडा और Numpy.
1. लैग फ़ीचर (ऑटोरेग्रेसिव रिप्रेजेंटेशन)
ऑटोरेग्रेसिव प्रतिनिधित्व या अंतराल सुविधाओं का उपयोग करने के पीछे का विचार जितना लगता है उससे कहीं अधिक सरल है: इसमें पिछले अवलोकन को वर्तमान अवलोकन में एक नई भविष्यवक्ता सुविधा के रूप में जोड़ना शामिल है। संक्षेप में, यह अस्थायी निर्भरता का प्रतिनिधित्व करने का यकीनन सबसे सरल तरीका है, उदाहरण के लिए वर्तमान समय और पिछले समय के बीच।
10 की इस सूची में पहले एक-पंक्ति उदाहरण कोड के रूप में, आइए इसे और अधिक बारीकी से देखें।
यह उदाहरण वन-लाइनर मानता है कि आपने एक रॉ टाइम सीरीज़ डेटासेट संग्रहीत किया है DataFrame बुलाया dfजिसकी मौजूदा विशेषताओं में से एक का नाम दिया गया है 'value'. ध्यान दें कि तर्क में shift() पंजीकृत मूल्य लाने के लिए फ़ंक्शन को समायोजित किया जा सकता है एन वर्तमान से पहले के समय के क्षण या अवलोकन:
df(‘lag_1’) = df(‘मान’).shift(1)
डीएफ(‘अंतराल_1’) = डीएफ(‘कीमत’).बदलाव(1) |
दैनिक समय श्रृंखला डेटा के लिए, यदि आप सप्ताह के किसी दिए गए दिन, उदाहरण के लिए सोमवार, के लिए पिछले मानों को कैप्चर करना चाहते हैं, तो इसका उपयोग करना उचित होगा shift(7).
2. रोलिंग मीन (अल्पकालिक स्मूथिंग)
स्थानीय रुझानों या डेटा में सहज अल्पकालिक उतार-चढ़ाव को पकड़ने के लिए, आमतौर पर रोलिंग साधनों का उपयोग करना आसान होता है एन अतीत के अवलोकन वर्तमान की ओर ले जाते हैं: यह किसी दिए गए फीचर पर कभी-कभी अराजक कच्चे समय श्रृंखला मूल्यों को सुचारू करने का एक सरल लेकिन बहुत उपयोगी तरीका है।
यह उदाहरण एक नई सुविधा बनाता है, जिसमें प्रत्येक अवलोकन के लिए, हाल की टिप्पणियों में इस सुविधा के तीन पिछले मूल्यों का रोलिंग माध्य शामिल है:
df(‘rolling_mean_3’) = df(‘मान’).rolling(3).mean()
डीएफ(‘रोलिंग_मीन_3’) = डीएफ(‘कीमत’).रोलिंग(3).अर्थ() |

रोलिंग माध्य के साथ सुचारू समय श्रृंखला सुविधा
3. रोलिंग मानक विचलन (स्थानीय अस्थिरता)
रोलिंग साधनों के समान, रोलिंग मानक विचलन के आधार पर नई सुविधाएँ बनाने की भी संभावना है, जो मॉडलिंग के लिए प्रभावी है कि लगातार अवलोकन कितने अस्थिर हैं।
यह उदाहरण दैनिक अवलोकनों को मानते हुए, एक सप्ताह की चलती विंडो में नवीनतम मूल्यों की परिवर्तनशीलता को मॉडल करने के लिए एक सुविधा का परिचय देता है।
df(‘rolling_std_7’) = df(‘मान’).rolling(7).std()
डीएफ(‘रोलिंग_एसटीडी_7’) = डीएफ(‘कीमत’).रोलिंग(7).कक्षा() |
4. विस्तार माध्य (संचयी मेमोरी)
विस्तारित माध्य अस्थायी अनुक्रम में वर्तमान अवलोकन तक (और इसमें शामिल) सभी डेटा बिंदुओं के माध्य की गणना करता है। इसलिए, यह लगातार बढ़ते विंडो आकार के साथ एक रोलिंग माध्य की तरह है। यह विश्लेषण करना उपयोगी है कि समय श्रृंखला विशेषता में मूल्यों का माध्य समय के साथ कैसे विकसित होता है, जिससे लंबी अवधि में ऊपर या नीचे की ओर रुझान को अधिक विश्वसनीय रूप से कैप्चर किया जा सके।
डीएफ(‘विस्तार_माध्य’) = डीएफ(‘मूल्य’).विस्तार().माध्य()
डीएफ(‘विस्तार_मतलब’) = डीएफ(‘कीमत’).का विस्तार().अर्थ() |
5. अंतर निकालना (रुझान हटाना)
इस तकनीक का उपयोग दीर्घकालिक रुझानों को हटाने, परिवर्तन दरों को उजागर करने के लिए किया जाता है – जो उन्हें स्थिर करने के लिए गैर-स्थिर समय श्रृंखला में महत्वपूर्ण है। यह लक्ष्य विशेषता के लगातार अवलोकनों (वर्तमान और पिछले) के बीच अंतर की गणना करता है:
df(‘diff_1’) = df(‘मान’).diff()
डीएफ(‘diff_1’) = डीएफ(‘कीमत’).अंतर() |
6. समय-आधारित विशेषताएं (अस्थायी घटक निष्कर्षण)
वास्तविक दुनिया के अनुप्रयोगों में सरल लेकिन बहुत उपयोगी, इस वन-लाइनर का उपयोग आपकी समय श्रृंखला के चारों ओर घूमने वाली पूर्ण दिनांक-समय सुविधा या अनुक्रमणिका से प्रासंगिक जानकारी को विघटित और निकालने के लिए किया जा सकता है:
df(‘माह’), df(‘dayofweek’) = df(‘दिनांक’).dt.month, df(‘दिनांक’).dt.dayofweek
डीएफ(‘महीना’), डीएफ(‘सप्ताह का दिन’) = डीएफ(‘तारीख’).डीटी.महीना, डीएफ(‘तारीख’).डीटी.सप्ताह का दिन |
महत्वपूर्ण: सावधान रहें और जांचें कि क्या आपकी समय श्रृंखला में दिनांक-समय की जानकारी नियमित विशेषता में या डेटा संरचना के सूचकांक के रूप में निहित है। यदि यह सूचकांक होता, तो आपको इसके बजाय इसका उपयोग करने की आवश्यकता हो सकती है:
df(‘घंटा’), df(‘dayofweek’) = df.index.hour, df.index.dayofweek
डीएफ(‘घंटा’), डीएफ(‘सप्ताह का दिन’) = डीएफ.अनुक्रमणिका.घंटा, डीएफ.अनुक्रमणिका.सप्ताह का दिन |
7. रोलिंग सहसंबंध (अस्थायी संबंध)
यह दृष्टिकोण एक समय विंडो पर आँकड़ों को रोल करने से परे एक कदम उठाता है ताकि यह मापा जा सके कि हाल के मूल्य उनके पिछड़े समकक्षों के साथ कैसे सहसंबद्ध हैं, जिससे विकसित ऑटोसहसंबंध की खोज में मदद मिलती है। यह उपयोगी है, उदाहरण के लिए, शासन परिवर्तन का पता लगाने में, यानी समय के साथ डेटा में अचानक और लगातार व्यवहार परिवर्तन, जो तब होता है जब रोलिंग सहसंबंध किसी बिंदु पर कमजोर या उलट होने लगते हैं।
df(‘rolling_corr’) = df(‘value’).rolling(30).corr(df(‘value’).shift(1))
डीएफ(‘rolling_corr’) = डीएफ(‘कीमत’).रोलिंग(30).ठीक है(डीएफ(‘कीमत’).बदलाव(1)) |
8. फूरियर विशेषताएँ (मौसमी)
साइनसॉइडल फूरियर परिवर्तनों का उपयोग चक्रीय या मौसमी पैटर्न को पकड़ने के लिए कच्चे समय श्रृंखला विशेषताओं में किया जा सकता है। उदाहरण के लिए, साइन (या कोसाइन) फ़ंक्शन को लागू करने से दिनांक-समय सुविधाओं में अंतर्निहित वर्ष-दर-वर्ष की चक्रीय जानकारी को सीखने और वार्षिक पैटर्न मॉडलिंग के लिए उपयोगी निरंतर सुविधाओं में बदल दिया जाता है।
df(‘fourier_sin’) = np.sin(2 * np.pi * df(‘Date’).dt.dayofyear / 365) df(‘fourier_cos’) = np.cos(2 * np.pi * df(‘Date’).dt.dayofyear / 365)
डीएफ(‘फूरियर_पाप’) = एनपी.पाप(2 * एनपी.पाई* डीएफ(‘तारीख’).डीटी.वर्ष का दिन / 365) डीएफ(‘फूरियर_कॉस’) = एनपी.ओल(2 * एनपी.पाई * डीएफ(‘तारीख’).डीटी.वर्ष का दिन / 365) |
मुझे इस उदाहरण में एक-लाइनर के बजाय दो-लाइनर का उपयोग करने की अनुमति दें, एक कारण से: साइन और कोसाइन दोनों एक साथ संभावित चक्रीय मौसमी पैटर्न की बड़ी तस्वीर को कैप्चर करने में बेहतर हैं।
9. घातीय भारित माध्य (अनुकूली स्मूथिंग)
घातीय रूप से भारित माध्य – या संक्षेप में ईडब्ल्यूएम – का उपयोग घातीय रूप से घटते वजन को प्राप्त करने के लिए किया जाता है जो दीर्घकालिक स्मृति को बनाए रखते हुए हाल के डेटा अवलोकनों को अधिक महत्व देता है। यह एक अधिक अनुकूली और कुछ हद तक “स्मार्ट” दृष्टिकोण है जो सुदूर अतीत की तुलना में हाल की टिप्पणियों को प्राथमिकता देता है।
df(‘ewm_mean’) = df(‘मान’).ewm(span=5).mean()
डीएफ(‘ewm_mean’) = डीएफ(‘कीमत’).ewm(अवधि=5).अर्थ() |
10. रोलिंग एन्ट्रॉपी (सूचना जटिलता)
पिछले वाले के लिए थोड़ा और गणित! किसी समय विंडो पर किसी दिए गए फीचर की रोलिंग एन्ट्रॉपी यह गणना करती है कि उस समय विंडो में मान कितने यादृच्छिक या फैले हुए हैं, जिससे इसमें जानकारी की मात्रा और जटिलता का पता चलता है। परिणामी रोलिंग एन्ट्रापी के कम मूल्य आदेश और पूर्वानुमान की भावना को दर्शाते हैं, जबकि ये मूल्य जितने अधिक होंगे, “अराजकता और अनिश्चितता” उतनी ही अधिक होगी।
df(‘rolling_entropy’) = df(‘value’).rolling(10).apply(lambda x: -np.sum((p:=np.histogram(x,bins=5)(0)/len(x))*np.log(p+1e-9)))
डीएफ(‘रोलिंग_एन्ट्रॉपी’) = डीएफ(‘कीमत’).रोलिंग(10).आवेदन करना(लैम्ब्डा एक्स: –एनपी.जोड़((पी:=एनपी.हिस्टोग्राम(एक्स, डिब्बे=5)(0)/लेन(एक्स))*एनपी.लकड़ी का लट्ठा(पी+1e–9))) |
ऊपर लपेटकर
इस लेख में, हमने 10 रणनीतियों की जांच और चित्रण किया है – प्रत्येक कोड की एक ही पंक्ति को फैलाते हुए – कच्चे समय श्रृंखला डेटा से विभिन्न प्रकार के पैटर्न और जानकारी निकालने के लिए, सरल रुझानों से लेकर मौसमी और सूचना जटिलता जैसे अधिक परिष्कृत लोगों तक।
Latest Technology, (लेटेस्ट टेक न्यूज़) Gadget (गैजेट्स) …
Source link


