मशीन लर्निंग का उपयोग करके वित्तीय समय की भविष्यवाणी करने के लिए पहला कदम सीखना


12

मैं भविष्य में वित्तीय समय 1 या अधिक चरणों की भविष्यवाणी करने के लिए मशीन सीखने का उपयोग करने के बारे में समझ पाने की कोशिश कर रहा हूं।

मेरे पास कुछ वर्णनात्मक डेटा के साथ एक वित्तीय समय है और मैं एक मॉडल बनाना चाहूंगा और फिर मॉडल का उपयोग करके n-कदमों की भविष्यवाणी करूंगा।

मैं अब तक क्या कर रहा हूं:

getSymbols("GOOG")

GOOG$sma <- SMA(Cl(GOOG))
GOOG$range <- GOOG$GOOG.High-GOOG$GOOG.Low

tail(GOOG)

           GOOG.Open GOOG.High GOOG.Low GOOG.Close GOOG.Volume GOOG.Adjusted     sma range
2013-05-07    863.01    863.87   850.67     857.23     1959000        857.23 828.214 13.20
2013-05-08    857.00    873.88   852.91     873.63     2468300        873.63 834.232 20.97
2013-05-09    870.84    879.66   868.23     871.48     2200600        871.48 840.470 11.43
2013-05-10    875.31    880.54   872.16     880.23     1897700        880.23 848.351  8.38
2013-05-13    878.89    882.47   873.38     877.53     1448500        877.53 854.198  9.09
2013-05-14    877.50    888.69   877.14     887.10     1579300        887.10 860.451 11.55

तब मैंने इस डेटा के लिए एक यादृच्छिक मॉडल को फिट किया है।

fit <- randomForest(GOOG$GOOG.Close ~ GOOG$sma + GOOG$range, GOOG)

जो आश्चर्यजनक रूप से अच्छी तरह से फिट होता है:

> fit

Call:
 randomForest(formula = GOOG$GOOG.Close ~ GOOG$sma + GOOG$range,      data = GOOG) 
               Type of random forest: regression
                     Number of trees: 500
No. of variables tried at each split: 1

          Mean of squared residuals: 353.9844
                    % Var explained: 97.28

और भविष्यवाणी करने के लिए इसका उपयोग करने की कोशिश की:

predict(fit, GOOG, n.ahead=2)

लेकिन इस भविष्यवाणी का कोई फायदा नहीं हुआ।

मैं क्लोज़ की भविष्यवाणी करने की कोशिश करता हूं, क्या मुझे मॉडल को फिट करने से पहले, अन्य चरणों को भी उतने ही चरणों में रखना चाहिए जितना कि मैं भविष्यवाणी करना चाहता हूं?

संभवत: बहुत सारे अन्य सामानों को भी मुझे ध्यान में रखना चाहिए, लेकिन ये वास्तव में मशीन सीखने का मेरा पहला कदम है।

जवाबों:


16

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

जहां तक ​​आपका उद्देश्य समापन मूल्य की भविष्यवाणी करना है, मुझे लगता है कि बंद कीमतों को लक्ष्य चर के रूप में उपयोग किए जाने के लिए बहुत शोर है और उनका उपयोग गलत उद्देश्य के ओवरफिटिंग या अनुकूलन के लिए होगा। इसके बजाय मैं एक चलती औसत के साथ समापन मूल्य को सुचारू करके शुरू करूंगा और फिर अगले दो दिनों में मूल्य परिवर्तन की दिशा का अनुमान लगाऊंगा। उदाहरण के लिए, मैं पास के 5 दिन के SMA के साथ नज़दीकी को बदल सकता हूं और फिर SMA के मूल्य परिवर्तन को 1 के रूप में कोड कर सकता हूं यदि यह अगले दो दिनों और 0 से अधिक सकारात्मक था। क्योंकि आउटपुट चर को अब 1 या 0 के रूप में कोडित किया गया है, यह आपके द्वारा उपयोग किए जा रहे यादृच्छिक वन फ़ंक्शन के साथ प्रयास करने और हल करने के लिए एक अच्छी समस्या है। आप लॉजिस्टिक रिग्रेशन, न्यूरल नेटवर्क और एसवीएम जैसे कुछ अन्य वर्गीकरण अल्गोरिथम भी आज़मा सकते हैं और हो सकता है कि अपने प्रदर्शन को बेहतर बनाने के लिए कुछ संयोजन में शामिल हों। यह अभी भी एक कठिन समस्या है बिना ओवरफ़िटिंग के हल करना, लेकिन यह सही दिशा में एक कदम है। सावधानी का एक और शब्द यह है कि आपके अंतिम मॉडल में सकारात्मक या नकारात्मक के रूप में अगले दो दिनों को वर्गीकृत करने में अद्भुत सटीकता हो सकती है, लेकिन फिर भी पैसे खो देते हैं क्योंकि यह कुछ बड़े चालों को गलत तरीके से वर्गीकृत करता है।

मैं आपके मॉडल को एक से अधिक सुरक्षा पर बनाने की भी सिफारिश करूंगा ताकि मशीन लर्निंग एल्गोरिथ्म एक स्टॉक के आइडिओसिनक्रैसीज में न हो। मैं कम से कम 5 शेयरों के साथ शुरुआत करूंगा जो प्रत्येक अभिभावक के लिए अत्यधिक सहसंबद्ध नहीं हैं।

Guido Deboeck द्वारा एज पर ट्रेडिंग वित्तीय समय श्रृंखला भविष्यवाणी के लिए मशीन सीखने के अनुप्रयोगों की खोज के लिए शुरू करने के लिए एक अच्छी जगह है। यह एक पुरानी पुस्तक है, इसलिए यह आज हमारे पास मौजूद तकनीक के पीछे है, लेकिन यह एक अच्छी शुरुआत है। मैं जॉन वूल्बर्ग द्वारा कॉफमैन और एक्सपर्ट ट्रेडिंग सिस्टम्स द्वारा नए ट्रेडिंग सिस्टम और विधियों की भी सिफारिश करूंगा।


ठीक है, इस अच्छे उत्तर के लिए धन्यवाद। उदाहरण मेरे लिए यह समझने के लिए अधिक था कि डेटा को कैसे सेट किया जाए ताकि यादृच्छिक रूप से इसका उपयोग किया जा सके। लेकिन अब मुझे पता है कि मुझे इसे काम करने के लिए इनपुट्स की जरूरत है। क्या यह आपके उदाहरण में SMA की कीमत को आउटपुट चर के रूप में लेने का कोई मतलब होगा, या इसे 0 या 1 के रूप में होना चाहिए? \ n पुस्तक अनुशंसाओं के लिए भी धन्यवाद उनके साथ खुद को परिचित करेगा।
निक्के

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

नमस्ते, कुछ सुविधाएँ बनाईं और एक मॉडल बनाया: pastie.org/7958695 मुझे लगता है कि मुझे मैकेनिक का पता चल गया है। हालांकि यह मॉडल बहुत अधिक कर्फ्यू वाला है। क्या आपने ऐसा ही कुछ किया है और इसका कोई वास्तविक उपयोग किया है? अधिक बात करने के लिए अच्छा होगा।
निक्के

मैं हमेशा अधिक विस्तृत बातचीत के लिए खुला हूं। मेरी संपर्क जानकारी मेरी प्रोफ़ाइल पर है। यदि आप चाहें तो मुझे एक ई-मेल शूट करें।
CrossValidatedTrading

क्या मूल्य-मूल्य की भविष्यवाणी की तुलना में, रिटर्न की भविष्यवाणी करने के लिए कुछ सरल पंजीकरण किए गए जो ठीक काम करने चाहिए। वापसी की भविष्यवाणी करने के अलावा, प्रसार और कमिश इत्यादि को हरा देने के लिए एक बड़े पर्याप्त रिटर्न का अनुमान लगाना होगा। मेरा अतीत में है मैं पिछले टिप्पणी में तैनात है।
निक्के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.