2016-10-06 3 views
7

मैं सरल समय श्रृंखला भविष्यवाणियों के साथ खेलने की कोशिश कर रहा हूं। इनपुट की संख्या (1 मिनट टिक) को देखते हुए नेट को अगले भविष्य की भविष्यवाणी करने का प्रयास करना चाहिए। मैं मेरी समस्या को वर्णन करने के विभिन्न सेटिंग्स के साथ 3 जाल प्रशिक्षित किया है:सरल एमएलपी समय श्रृंखला प्रशिक्षण उपेक्षित औसत रेखा परिणाम

enter image description here

सही आप 3 ट्रेनर MLP के देख सकते हैं पर - बेतरतीब ढंग से नामित और रंग कोडित, कुछ प्रशिक्षण आँकड़ों के साथ। बाईं तरफ - उन नेटों द्वारा बनाई गई भविष्यवाणियों की साजिश और सफेद में वास्तविक सत्यापन डेटा। यह साजिश प्रमाणीकरण डेटा (सफेद) के प्रत्येक टिक के माध्यम से जाकर बनाई गई थी, 30 | 4 | 60 (नैन्सी | कैथी | वेन) को खिलाने के लिए पिछली टिकें और मौजूदा टिक के स्थान पर भविष्यवाणी की जा रही थी।

बहुपरत perceptron की सेटिंग्स (नैन्सी | कैथी | वेन सेटिंग्स):

ज्यामिति: 2x30 | 4 | 60 इनपुट नोड्स -> 30 | 4 | 60 छिपी परत नोड्स -> 2 आउटपुट
अवधियों की संख्या: 10 | 5 | 10
सीखना दर: 0.01
गति: 0.5 | 0.9 | 0.5
Nonlinearity: सुधारने
हानि: Squared त्रुटि

ऐसा लगता है कि और अधिक प्रशिक्षण के साथ लागू - भविष्यवाणियों कुछ करने के लिए कर रहे हैं converging तरह की मतलब रेखा, जो कि मैं बिल्कुल उम्मीद नहीं कर रहा था। मैं पूर्वानुमान की उम्मीद कर रहा था कि कुछ मार्जिन के साथ प्रमाणीकरण डेटा के करीब कुछ खड़े हो जाएं।
क्या मैं गलत मॉडल चुन रहा हूं, मशीन सीखने की कुछ मूल अवधारणाओं को गलत समझ रहा हूं या लसगने/थानो में कुछ गलत कर रहा हूं?

सबसे अधिक प्रासंगिक (मेरी राय में) कोड भागों के लिए त्वरित लिंक:

और यहाँ पूर्ण, कम या ज्यादा, सूत्रों का कहना है है:

  • Data used for training प्रारूप में - तिथि, खुला, उच्च, कम, करीब; मात्रा - केवल तारीख, उच्च और निम्न उपयोग किया जाता है
  • MLP module
  • गुई मॉड्यूल के प्रासंगिक MLP interaction parts

उत्तर

2

सबसे पहले, मैं आपको गैर रेखीय सुधार के उपयोग की सराहना करना चाहता हूं। बोल्टज़मान मशीन के जेफ्री हिंटन आविष्कारक के मुताबिक, मानव मस्तिष्क की गतिविधियों के लिए गैर रैखिक सुधारक एक सर्वोत्तम पैर है।

लेकिन आपके द्वारा चुने गए अन्य हिस्सों के लिए मैं आपको एनएन आर्किटेक्चर बदलने का प्रस्ताव करता हूं। शेयर बाजार की भविष्यवाणियों के लिए आपको कुछ आवर्ती एनएन का उपयोग करना चाहिए: सबसे आसान उम्मीदवार एल्मन या जॉर्डन नेटवर्क हो सकते हैं। या आप एलएसटीएम नेटवर्क की तरह अधिक जटिल कोशिश कर सकते हैं।

सलाह का एक और हिस्सा, मैं एनएन में जो फ़ीड करता हूं उसे संशोधित करने का प्रस्ताव करता हूं। आम तौर पर, मैं आपको स्केलिंग और सामान्यीकरण लागू करने की सलाह देता हूं।उदाहरण के लिए एनएन कच्चे मूल्य में फ़ीड न करें। इसे निम्न तरीकों में से एक में संशोधित करें (उन प्रस्तावों को पत्थर में नहीं लिखा गया है): 1. मूल्य के परिवर्तनों के एनएन प्रतिशत में फ़ीड करें। 2. आप 30 मूल्यों एनएन में फ़ीड, और दो मानों भविष्यवाणी करने के लिए चाहते हैं, तो 30 + 2 मूल्यों सभी 32 मूल्यों का न्यूनतम से घटाना, और 2 मूल्यों की भविष्यवाणी करने की कोशिश, लेकिन 30 के आधार पर तो बस न्यूनतम परिणाम में जोड़ें 32 मूल्यों का।

सिर्फ एनएन में तारीखों को खिलाने मत करो। यह भविष्यवाणी करने के बारे में कुछ भी नहीं कहता है। इसके बजाय एनएन दिनांक और समय में स्पष्ट मूल्य के रूप में फ़ीड करें। स्पष्ट रूप से मतलब है कि आप एक प्रविष्टि में डेटाटाइम को बदलते हैं। उदाहरण के लिए एनएन 2016/09/10 को देने के बजाय आप निम्नलिखित में से कुछ पर विचार कर सकते हैं।

  1. व्यापार का वर्ष शायद अधिक उपयोगी जानकारी नहीं देगा। तो आप व्यापार के वर्ष को छोड़ सकते हैं।
  2. 09 महीने या सितंबर के लिए खड़ा है। आपके पास महीने की एनएन संख्या में पसंद है, लेकिन मैं दृढ़ता से अनुशंसा करता हूं कि आप एनएन में 12 इनपुट करें, और जनवरी के मामले में पहले एनएन इनपुट 1, और अन्य ग्यारह के लिए शून्य दें। इस तरह आप जनवरी या दिसंबर में व्यापार अवधि से जनवरी में व्यापार अवधि को अलग करने के लिए अपने नेटवर्क को प्रशिक्षित करेंगे। इसके अलावा मैं उसी तरह सप्ताह के दिन के स्पष्ट इनपुट करने का प्रस्ताव करता हूं। क्योंकि सोमवार में व्यापार शुक्रवार को व्यापार से अलग है, खासकर एनएफपी के दिन में।
  3. घंटों के लिए मैं 6 से 8 घंटे की अवधि के अनुसार एन्कोडिंग का उपयोग करने का प्रस्ताव करता हूं। इससे आपको विभिन्न व्यापार सत्रों को ध्यान में रखकर नेटवर्क को प्रशिक्षित करने में मदद मिलेगी: एशिया, फ्रैंकफर्ट, लंदन, न्यू यॉर्क।
  4. आप कुछ संकेतक फिर कुछ संकेतकों के लिए थर्मामीटर एन्कोडिंग पर विचार एनएन में खिलाने का फैसला करते हैं। आमतौर पर एडीएक्स जैसे संकेतकों के लिए थर्मामीटर एन्कोडिंग की आवश्यकता होती है।

न्यूनतम उपयोग करने के तरीके के बारे में टिप्पणियों में आपके प्रश्न के अनुसार मैं आपको सरल उदाहरण दूंगा।
1.1122, 1.1132, 1.1152, 1.1156, 1.1166, 1.1173, 1.1153, 1.1150, 1.1152, 1.1159: मान लीजिए कि आप यूरो/अमरीकी डालर के लिए करीब कीमतों निम्नलिखित प्रशिक्षण एनएन के लिए उपयोग करना चाहते हैं। खिड़कियों आकार के बजाय मैं विंडो का आकार 3 (सिर्फ सादगी खातिर) और भविष्यवाणी विंडो का आकार 2.
भविष्यवाणी के लिए इस्तेमाल की कुल डेटा के साथ शिक्षण का प्रदर्शन करेंगे 30 सीखने के लिए 3. आउटपुट के बराबर 2. सीखने के लिए हम करेंगे हो जाएगा पहले 5 मूल्यों का उपयोग, या:
1.1122, 1.1132, 1.1152, 1.1156, 1.1166
फिर एक और 5 मूल्यों या:
1.1132, 1.1152, 1.1156, 1.1166, 1.1173
पहले खिड़की न्यूनतम मूल्य में है: 1.1122।
तो फिर तुम प्रत्येक मान से 1.1122 घटाना:
0, 0.002, 0.003, 0.0033, 0.0034। इनपुट के रूप में आप एनएन 0, 0.002, 0.003 में फ़ीड करते हैं। एनएन से आउटपुट के रूप में आप 0.0033, 0.0034 की उम्मीद करते हैं। यदि आप इसे अधिक तेज़ी से सीखना चाहते हैं, तो एनएन सामान्यीकृत और स्केल किए गए मानों में फ़ीड करें। फिर हर बार आपको इनपुट की डी-सामान्यीकरण और डी-स्केलिंग करने की आवश्यकता होगी।

एक और तरीका है, कीमत के परिवर्तन की एनएन प्रतिशत में फ़ीड। अगर आपको इसके लिए नमूना चाहिए तो मुझे बताएं। सलाह के

और एक और महत्वपूर्ण भाग। व्यापार करने के लिए सिर्फ एनएन का उपयोग न करें। कभी नहीँ!!! ऐसा करने का बेहतर तरीका सफलता के कुछ प्रतिशत के साथ कुछ सिस्टम का आविष्कार किया गया है। उदाहरण के लिए 30%। फिर 60% तक सफलता का सफलता प्रतिशत बढ़ाने के लिए एनएन का उपयोग करें।

मैं कुछ संकेतकों के लिए थर्मामीटर एन्कोडिंग का भी उदाहरण प्रदान करना चाहता हूं।ADX सूचक और इन उदाहरणों को देखें:।

एक> 10> 20> 30> 40
ज। > 10> 20> 30> 40
उदाहरण एक बड़ा तो 10 उदाहरण ख अधिक से अधिक ADX तो 20.
आप के लिए थर्मामीटर एन्कोडिंग संशोधित कर सकते हैं साथ एनएन में इनपुट प्रदान करता है ADX साथ एनएन में इनपुट प्रदान करता है स्टोकास्टिक के लिए इनपुट प्रदान करना। आमतौर पर स्टोकास्टिक का अर्थ 0 - 20, और 80 - 100 और कभी-कभी मामलों में 20 से 80 के बीच होता है। लेकिन हमेशा की तरह आप कोशिश कर सकते हैं और देख सकते हैं।

+0

धन्यवाद :) हां, मेरे पास वास्तव में आवर्ती एक का उपयोग करने के बारे में कई बार लाल बार है, लेकिन मैंने कुछ और "बुनियादी" शुरू करने का प्रयास करने का निर्णय लिया है। तो आपके उत्तर से ऐसा लगता है कि एमएलपी इस मतलब रेखा के साथ अपेक्षित व्यवहार करता है, जो डेटा मैं खिला रहा हूं? 2. कम से कम इस सबस्ट्रैक्टिंग से आपका मतलब क्या हो सकता है ... क्या है? शायद यह सिर्फ शब्द है, लेकिन क्या आप कुछ और विवरणों में समझा सकते हैं? 3. मैं वास्तव में एनएन में किसी भी तारीख को केवल कीमतों की श्रृंखला नहीं खिला रहा हूं। और प्रशिक्षण डेटा सितंबर की केवल 1 एम टिक थी। मुझे सच में यकीन नहीं है कि –

+0

बीटीडब्ल्यू के वर्षों को खिलाने में एक बिंदु है, एन्कोडिंग समय अवधि के बारे में अच्छे अंक, पूरी तरह तार्किक लगता है, मैं निश्चित रूप से कोशिश करता हूं कि जितनी जल्दी मैं सरल रेखा के साथ कम से कम कुछ अर्थपूर्ण हो जाऊंगा आदर्श। –

+0

मैक्स यारी, कृपया अद्यतन उत्तर पर एक नज़र डालें –

संबंधित मुद्दे