समर्थन वेक्टर मशीन के साथ कारोबार ( svm)







+

समर्थन वेक्टर मशीन के साथ कारोबार (SVM) (यह लेख पहले Quintuitive »आर पर प्रकाशित किया। और कृपया आर-ब्लॉगर्स के लिए योगदान दिया गया था) अंत में सभी सितारों गठबंधन किया है और मैं आत्मविश्वास से नया व्यापार प्रणाली के पीछे-परीक्षण के लिए कुछ समय समर्पित कर सकते हैं, और समर्थन वेक्टर मशीन (SVM) 8220 के लिए नए हैं, toy8221; जो थोड़ी देर के लिए मुझे व्यस्त रखने के लिए जा रहा है। SVMs देखरेख मशीन लर्निंग के क्षेत्र से एक प्रसिद्ध उपकरण हैं। और वे वर्गीकरण और प्रतिगमन के लिए दोनों का इस्तेमाल किया जाता है। अधिक जानकारी के लिए साहित्य का संदर्भ लें। यह तो एक SVM प्रतिगमन मॉडल के निर्माण से शुरू कर देता है, व्यापार के लिए सबसे सहज ज्ञान युक्त आवेदन प्रतिगमन है कि मुझे लगता है। ARMA + GARCH मॉडलों के साथ हमारे अनुभव के बाद, हम बजाय कीमतों की, रिटर्न की भविष्यवाणी करने की कोशिश कर रहा द्वारा शुरू कर देंगे। इसी तरह, हमारा पहला परीक्षण में, हम एक विशेष दिन की वापसी का निर्धारण सुविधाओं के रूप में पिछले 5 दिनों का ही रिटर्न का उपयोग करेगा। हम प्रशिक्षण के सेट के रूप में 500 दिन के इतिहास के साथ शुरू होगा। हम एम नमूने हैं उनमें से प्रत्येक के लिए अधिक गणितीय संदर्भ में, प्रशिक्षण सेट के लिए हम, एन फीचर हैं। हम भी एम के हिमायती हैं। सुविधा मूल्यों, छोड़ा मैट्रिक्स की एक पंक्ति को देखते हुए, SVM प्रतिक्रिया मूल्य का उत्पादन करने के लिए प्रशिक्षित किया जाता है। हमारे विशिष्ट उदाहरण में, हम पाँच स्तंभों (विशेषताएं), (1-5) एक अलग अंतराल के साथ रिटर्न के लिए इसी प्रत्येक स्तंभ हैं। हम 500 नमूने और इसी के हिमायती हैं। SVM इस सेट पर प्रशिक्षित किया जाता है एक बार, हम पिछले पांच दिनों के लिए रिटर्न के लिए इसी पाँच सुविधाओं के सेट के साथ यह खिला शुरू कर सकते हैं, और SVM पूर्वानुमानित वापसी है जो प्रतिक्रिया, के साथ हमें प्रदान करेगा। उदाहरण के लिए, पिछले 500 दिनों पर SVM प्रशिक्षण के बाद, हम दिन 501 के लिए पूर्वानुमानित वापसी प्राप्त करने के लिए निवेश के रूप में दिनों 500, 499, 498, 497 और 496 के लिए रिटर्न (इन 2C21 हमारे हैं "/% का उपयोग करेगा। आर में उपलब्ध सभी संकुल से, मैं e1071 पैकेज चुनने का फैसला किया। एक दूसरे के करीब चुनाव मैं अभी भी भविष्य में कोशिश करने के लिए योजना बना रहा हूँ जो kernlab पैकेज था। तब मैं कुछ रणनीतियों की कोशिश की। पहले मैं ARMA + GARCH करने के लिए बहुत कुछ इसी तरह पिछले पांच दिनों से lagged रिटर्न दृष्टिकोण की कोशिश की। मैं इस रणनीति ARMA + GARCH (इस ARMA + GARCH के घर भूमि है और मैं सिर्फ तुलनीय प्रदर्शन से काफी खुश हो गया होता) की तुलना में बेहतर प्रदर्शन कर देखने के लिए काफी हैरान था! इसके बाद, मैं एक ही पाँच सुविधाओं करने की कोशिश की, लेकिन सबसे अच्छा सबसेट चयन करने के लिए कोशिश कर रहा है। चयन 0 सुविधाओं के साथ शुरू, और सहभागी सबसे अच्छा त्रुटि को कम करता है, जो सुविधा जोड़ने, एक लालची दृष्टिकोण का उपयोग किया गया था। यह दृष्टिकोण आगे चीजों में सुधार हुआ। अंत में, मैं के बारे में एक दर्जन से अधिक सुविधाओं के साथ एक अलग दृष्टिकोण की कोशिश की। सुविधाओं अलग-अलग समय अवधि (1 दिन, 2 दिन, 5 दिन, आदि) से अधिक रिटर्न शामिल है, कुछ आँकड़े और मात्रा (, मंझला, एसडी, आदि मतलब है)। मैं सुविधाओं का चयन करने के लिए एक ही लालची दृष्टिकोण का इस्तेमाल किया। इस अंतिम प्रणाली के रूप में अच्छी तरह से एक बहुत अच्छा प्रदर्शन दिखाया, लेकिन इसे चलाने के लिए एक समय का एक नरक में ले लिया। समय के इस पोस्ट को समाप्त करने, पीछे के परीक्षण के परिणाम इंतज़ार करना होगा। तब तक आप पूर्ण स्रोत कोड के खुद के साथ खेल सकते हैं। यहाँ यह उपयोग करने का एक उदाहरण है: