2012-04-30 20 views
5

libsvm की "grid.py" svm-train के केवल दो पैरामीटर "सी" और "जी" को अनुकूलित करने का प्रयास करें। मैं विभिन्न मानकों के लिए बार-बार "grid.py" चलाकर अन्य पैरामीटर (उदाहरण के लिए "आर" या "डी") के लिए अनुकूलित करने के लिए "grid.py" का विस्तार करना चाहता था। मेरे पास कुछ प्रश्न हैं
1. क्या कोई स्क्रिप्ट पहले से ही "सी" और "जी" पैरामीटर को अनुकूलित कर सकती है?
2. कौन से पैरामीटर अधिक महत्वपूर्ण हैं और अधिकतम/न्यूनतम सीमा क्या हैं। एक पैरामीटर को कभी-कभी बदलना/अनुकूलित करना स्वचालित रूप से अन्य पैरामीटर को अनुकूलित करता है। क्या यह एसवीएम-ट्रेन पैरामीटर के साथ मामला है?
एसवीएम-ट्रेन अन्य पैरामीटर ऑप्टिमाइज़ेशन

उत्तर

11

जहां तक ​​मुझे पता है कि कोई स्क्रिप्ट नहीं है जो यह करती है, हालांकि मुझे नहीं लगता कि grid.py को ऐसा करने के लिए आसानी से क्यों नहीं बढ़ाया जा सकता था। हालांकि, मुझे नहीं लगता कि यह प्रयास के लायक है।

सबसे पहले, आपको अपना कर्नेल चुनना होगा। यह अपने आप में एक पैरामीटर है। प्रत्येक कर्नेल में पैरामीटर का एक अलग सेट होता है, और अलग-अलग प्रदर्शन करेगा, इसलिए कर्नेल की तुलना करने के लिए आपको प्रत्येक कर्नेल के पैरामीटर को अनुकूलित करना होगा।

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

आम तौर पर, दो सबसे व्यापक रूप से उपयोग किए जाने वाले कर्नल रैखिक होते हैं (जिसके लिए कोई पैरामीटर की आवश्यकता नहीं होती है) और आरबीएफ कर्नेल।

आरबीएफ कर्नेल गामा पैरामीटर लेता है। इसे अनुकूलित किया जाना चाहिए, इसका मूल्य प्रदर्शन को काफी प्रभावित करेगा।

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

सिग्मोइड कर्नेल के समान, गामा आपका मुख्य पैरामीटर है, इसे अनुकूलित करें और डिफॉल्ट पर कोफ 0 छोड़ दें, जब तक कि आपको अच्छी समझ न हो कि यह आपके डेटा को बेहतर तरीके से फिट क्यों करेगा।

इसलिए कारण है कि grid.py अन्य मानकों को अनुकूलित नहीं करता है क्योंकि ज्यादातर मामलों में यह केवल अनावश्यक है और आम तौर पर प्रदर्शन में सुधार नहीं होगा। आपके दूसरे प्रश्न के लिए: नहीं, यह ऐसा कोई मामला नहीं है जहां एक अनुकूलित करने से दूसरे को अनुकूलित किया जा सके। इन पैरामीटर के इष्टतम मान आपके डेटासेट के लिए विशिष्ट हैं। कर्नेल पैरामीटर के मान को बदलना सी के इष्टतम मान को प्रभावित करेगा। यही कारण है कि एक ग्रिड खोज की सिफारिश की जाती है। आपकी खोज में इन अतिरिक्त पैरामीटर को जोड़ने से यह समय बढ़ जाएगा और क्लासिफायर प्रदर्शन में वृद्धि करने की संभावना नहीं है।

+0

क्या आपका मतलब है डी डिग्री सही है? मुझे कर्नेल के लिए कौन से पैरामीटर आवश्यक हैं, इस बारे में जानकारी कहां मिल सकती है? इसलिए मैं अनावश्यक मानकों के साथ समय बर्बाद नहीं करूँगा। Ty – MonsterMMORPG