2012-09-19 12 views
13

मैं डिग्री 2 के बहुपद कर्नेल के साथ सी-एसवीसी मोड में libsvm का उपयोग कर रहा हूं और मुझे एकाधिक एसवीएम को प्रशिक्षित करने की आवश्यकता है।libsvm हटना हेरिस्टिक

-h shrinking : whether to use the shrinking heuristics, 0 or 1 (default 1) 

और मैं:

WARNING: using -h 0 may be faster 
* 
WARNING: reaching max number of iterations 
optimization finished, #iter = 10000000 

मैं h पैरामीटर के लिए विवरण मिल गया है: प्रशिक्षण के दौरान, मैं SVMs कि मैं ट्रेन से कुछ के लिए या तो एक या यहां तक ​​कि इन चेतावनियों के दोनों हो रही है libsvm दस्तावेज से स्पष्टीकरण पढ़ने की कोशिश की है, लेकिन यह मेरे लिए थोड़ा उच्च स्तर है। क्या कोई भी व्यक्ति को एक आम आदमी की व्याख्या प्रदान कर सकता है और शायद, इसे स्थापित करने जैसे कुछ सुझाव फायदेमंद होंगे क्योंकि ...? साथ ही, यह जानना उपयोगी होगा कि मेरे द्वारा प्रशिक्षित सभी एसवीएम के लिए इस पैरामीटर को सेट करके, उन एसवीएम के लिए सटीकता पर नकारात्मक प्रभाव उत्पन्न हो सकता है जो स्पष्ट रूप से यह चेतावनी नहीं देते हैं।

मुझे यकीन नहीं है कि अन्य चेतावनी का क्या करना है।

बस अधिक जानकारी देने के लिए: मेरे प्रशिक्षण सेट में 10 विशेषताएं (विशेषताएं) हैं और उनमें 5000 वैक्टर शामिल हैं।


अद्यतन:

मामले किसी और "दोहराव हैं तक पहुँचने अधिकतम संख्या" हो रही है में, यह संख्यात्मक स्थिरता समस्याओं के कारण हो रहा है। इसके अलावा, यह एक बहुत ही धीमी प्रशिक्षण समय का उत्पादन करेगा। बहुपद कर्नेल नियमितकरण (सी पैरामीटर) के लिए सर्वोत्तम मूल्य निर्धारित करने के लिए क्रॉस-सत्यापन तकनीकों का उपयोग करने से लाभान्वित होते हैं, और, बहुपद कर्नेल के मामले में, मेरे लिए यह 8 से छोटा रखने में मदद करता है। इसके अलावा, अगर कर्नेल अमानवीय है \ sum (\ gamma x_i s_i + coef0)^डी (क्षमा करें, लाटेक्स एसओ पर समर्थित नहीं है), जहां coef0! = 0, फिर क्रॉस सत्यापन को गामा और सी दोनों के लिए ग्रिड सर्च तकनीक के साथ कार्यान्वित किया जा सकता है, क्योंकि इसमें मामला, गामा (1/number_of_features) के लिए डिफ़ॉल्ट मान सबसे अच्छा विकल्प नहीं हो सकता है। फिर भी, मेरे प्रयोगों से, शायद आप गामा को बहुत बड़ा नहीं करना चाहते हैं, क्योंकि इससे संख्यात्मक समस्याएं पैदा हो जाएंगी (मैं इसके लिए अधिकतम 8 का प्रयास कर रहा हूं)।

गामा और सी के संभावित मूल्यों पर और प्रेरणा के लिए grid.py में पोकिंग करने का प्रयास करना चाहिए।

उत्तर

8

सिकुड़ने वाली हेरिस्टिक वहां अनुकूलन को तेज करने के लिए हैं। जैसा कि यह एफएक्यू में कहता है, वे कभी-कभी मदद करते हैं, और कभी-कभी वे नहीं करते हैं। मेरा मानना ​​है कि यह अभिसरण की बजाय रनटाइम का मामला है।

तथ्य यह है कि अनुकूलन अधिकतम संख्या में पुनरावृत्तियों तक पहुंचता है, हालांकि दिलचस्प है। आप सहिष्णुता (लागत पैरामीटर) के साथ खेलना चाहेंगे, या इस कारण होने वाली व्यक्तिगत समस्याओं पर नज़र डालें। क्या डेटासेट बड़े हैं?

+0

उत्तर के लिए धन्यवाद! मुझे लगता है कि आप सिकुड़ने वाले हेरिस्टिक के बारे में सही हैं। वे सिर्फ मॉडल को तेजी से प्रशिक्षित करने में मदद करते हैं। –

+0

अधिकतम पुनरावृत्तियों के संबंध में, मेरे डेटासेट में प्रत्येक 5000 आइटम हैं। प्रशिक्षण एक मिनट से भी कम समय लेता है। लागत पैरामीटर क्या है? क्या यह नियमितकरण है? अभी मैं इसे 1 पर सेट कर रहा हूं, libsvm में डिफ़ॉल्ट मान ... –

+0

ओह, मुझे यह स्पष्ट करना चाहिए: मेरे प्रशिक्षण सेट में 10 विशेषताएँ/विशेषताएं हैं और उनमें 5000 वैक्टर शामिल हैं। –

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