समय श्रृंखला पूर्वानुमान के लिए तंत्रिका नेटवर्क कैसे लागू करें?


83

मैं मशीन लर्निंग के लिए नया हूं, और मैं यह जानने की कोशिश कर रहा हूं कि समय श्रृंखला पूर्वानुमान के लिए तंत्रिका नेटवर्क कैसे लागू किया जाए। मुझे अपनी क्वेरी से संबंधित संसाधन मिल गए हैं, लेकिन मैं अभी भी थोड़ा खो गया हूं। मुझे लगता है कि बहुत अधिक विस्तार के बिना एक बुनियादी स्पष्टीकरण से मदद मिलेगी।

मान लें कि मेरे पास कुछ वर्षों से प्रत्येक महीने के लिए कुछ मूल्य मूल्य हैं, और मैं नए मूल्य मूल्यों की भविष्यवाणी करना चाहता हूं। मैं पिछले कुछ महीनों के लिए कीमतों की एक सूची प्राप्त कर सकता हूं, और फिर के-नियरेस्ट-नेबर का उपयोग करके अतीत में इसी तरह के रुझानों को खोजने की कोशिश कर सकता हूं। मैं उन्हें नई कीमतों की कोशिश करने और भविष्यवाणी करने के लिए परिवर्तन की दर या पिछले रुझानों की कुछ अन्य संपत्ति का उपयोग कर सकता था। मैं इस समस्या को तंत्रिका नेटवर्क कैसे लागू कर सकता हूं यह मैं पता लगाने की कोशिश कर रहा हूं।




@solartic, बस जिज्ञासु, क्या आपने इस विधि को सफलतापूर्वक लागू किया है?
सग्गी मानेते और स्वान लोक

जवाबों:


102

यहाँ एक सरल नुस्खा है जो आपको कोड लिखने और विचारों के परीक्षण शुरू करने में मदद कर सकता है ...

मान लें कि आपके पास कई वर्षों में मासिक डेटा दर्ज है, इसलिए आपके पास 36 मान हैं। आइए यह भी मान लें कि आप केवल एक महीने (मूल्य) की भविष्यवाणी के बारे में पहले से ही ध्यान रखते हैं।

  1. खोजपूर्ण डेटा विश्लेषण: डेटा में अंतराल की निर्भरता का अनुमान लगाने के लिए कुछ पारंपरिक समय श्रृंखला विश्लेषण विधियों को लागू करें (जैसे ऑटो-सहसंबंध और आंशिक ऑटो-सहसंबंध प्लॉट, परिवर्तन, अलग-अलग)। मान लीजिए कि आप किसी दिए गए महीने के मूल्य को पिछले तीन महीने के डेटा के साथ सहसंबद्ध मानते हैं, लेकिन उससे आगे नहीं।
  2. अपने डेटा को प्रशिक्षण और सत्यापन सेटों में विभाजित करें: पहले 24 बिंदुओं को अपने प्रशिक्षण मूल्यों और शेष बिंदुओं को सत्यापन सेट के रूप में लें।
  3. तंत्रिका नेटवर्क लेआउट बनाएँ: आप इनपुट के रूप में पिछले तीन महीने के मूल्यों को लेंगे और आप अगले महीने के मूल्य का अनुमान लगाना चाहते हैं। तो, आपको एक तंत्रिका नेटवर्क की आवश्यकता होती है जिसमें तीन नोड्स वाली इनपुट परत और एक नोड वाली आउटपुट परत होती है। आपको कम से कम कुछ नोड्स के साथ एक छिपी हुई परत होनी चाहिए। दुर्भाग्य से, छिपी हुई परतों की संख्या और उनके संबंधित नोड्स को चुनना, कुछ ऐसा नहीं है जिसके लिए स्पष्ट दिशानिर्देश हैं। मैं छोटा शुरू करूँगा, जैसे 3: 2: 1।
  4. x1,x2,x24
    pattern1:x1,x2,x3,x4
    pattern2:x2,x3,x4,x5
    pattern21:x21,x22,x23,x24
  5. इन पैटर्न पर तंत्रिका नेटवर्क को प्रशिक्षित करें
  6. सत्यापन सेट पर नेटवर्क का परीक्षण करें (25-36 महीने): यहां आप उन तीन मानों से गुजरेंगे जिनमें इनपुट परत के लिए तंत्रिका नेटवर्क की जरूरत होती है और देखें कि आउटपुट नोड क्या सेट किया जाता है। इसलिए, यह देखने के लिए कि प्रशिक्षित तंत्रिका नेटवर्क कितनी अच्छी तरह से 32 महीने के मूल्य का अनुमान लगा सकता है, जो आप 29, 30, और 31 महीनों के लिए मान लेंगे

यह नुस्खा स्पष्ट रूप से उच्च स्तर का है और जब आप अपने संदर्भ को अलग-अलग सॉफ़्टवेयर लाइब्रेरी / प्रोग्राम में मैप करने का प्रयास कर रहे हों, तो आप सबसे पहले अपना सिर खुजला सकते हैं। लेकिन, उम्मीद है कि यह रेखाचित्र मुख्य बिंदु से बाहर निकलेगा: आपको ऐसे प्रशिक्षण पैटर्न बनाने की आवश्यकता होती है जिनमें उस श्रृंखला की सहसंबंध संरचना शामिल हो, जिसका आप पूर्वानुमान लगाने की कोशिश कर रहे हैं। और चाहे आप एक तंत्रिका नेटवर्क या एक ARIMA मॉडल के साथ पूर्वानुमान लगाते हैं, यह निर्धारित करने के लिए कि यह संरचना क्या है, यह निर्धारित करने के लिए अक्सर सबसे अधिक समय लेने वाला और कठिन हिस्सा होता है।

मेरे अनुभव में, तंत्रिका नेटवर्क महान वर्गीकरण और पूर्वानुमान कार्यक्षमता प्रदान कर सकते हैं, लेकिन उन्हें स्थापित करने में समय लग सकता है। उपरोक्त उदाहरण में, आप पा सकते हैं कि 21 प्रशिक्षण पैटर्न पर्याप्त नहीं हैं; अलग-अलग इनपुट डेटा परिवर्तन बेहतर / बदतर पूर्वानुमानों का नेतृत्व करते हैं; छिपी हुई परतों और छिपी हुई परत नोड्स की संख्या को अलग-अलग करना पूर्वानुमानों को बहुत प्रभावित करता है; आदि।

मैं neural_forecasting वेबसाइट को देखने की अत्यधिक सलाह देता हूं , जिसमें तंत्रिका नेटवर्क पूर्वानुमान प्रतियोगिताओं के बारे में जानकारी होती है। मंशा पेज विशेष रूप से उपयोगी है।


12
इस उत्तर के लिए +1, लेकिन यह भी जोड़ना कि भले ही सबसे हाल के 3 महीने केवल वही हो जो उत्तर को सहसंबंधित करते हैं, पिछले 5 पिछले वर्षों में वर्ष के उसी महीने जैसे कारक भी हो सकते हैं जो उपयोगी इनपुट हैं ( उदाहरण के लिए, यदि Decembers पिछले Decembers की तरह दिखते हैं, आमतौर पर)।
rossdavidh

1
बहुत बढ़िया जवाब। मुझे यह बहुत मददगार लगा। एक उच्च स्तरीय व्याख्या वही है जो मैं चाहता था। @rossdavidh: अच्छी बात +1।
संक्रांति

2
यहां कुछ उदाहरण कोड प्राप्त करना बहुत अच्छा होगा।
लेओ लेपोल्ड हर्ट्ज़ o

1
दिलचस्प बात यह है कि एक बहुभिन्नरूपी समय श्रृंखला डेटासेट एक साथ regressors के साथ होगा ..
Tommaso Guerrini

1
क्या किसी को वास्तविक डेटा के लिए एक आवेदन के साथ कुछ कागज और "पारंपरिक" समय श्रृंखला विधि की तुलना में पता है?
बजे मार्को फुमगल्ली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.