2012-07-10 29 views
7

मुझे असंतुलित डेटा (9 0%, 5%, 5%) के साथ तीन वर्ग की समस्या है। अब मैं LIBSVM का उपयोग कर वर्गीकरण को प्रशिक्षित करना चाहता हूं।असंतुलित डेटा के लिए LIBSVM grid.py का उपयोग करना?

समस्या यह है कि LIBSVM इष्टतम सटीकता के लिए अपने पैरामीटर गामा और लागत को अनुकूलित करता है, जिसका अर्थ है कि 100% उदाहरणों को कक्षा 1 के रूप में वर्गीकृत किया गया है, जो निश्चित रूप से मैं नहीं चाहता हूं।

मैंने वजन घटकों को संशोधित करने की कोशिश की है - बिना किसी सफलता के।

तो मैं जो चाहता हूं, वह ग्रिड.py को संशोधित करने के तरीके को संशोधित करता है जिससे यह परिशुद्धता के लिए लागत और गामा को अनुकूलित करता है और कुल सटीकता के बजाए कक्षाओं द्वारा अलग किया जाता है। क्या उसे करने का कोई तरीका है? या क्या वहां अन्य स्क्रिप्ट हैं जो ऐसा कुछ कर सकती हैं?

उत्तर

8

-w पैरामीटर वह है जो आपको असंतुलित डेटा के लिए आवश्यक है। अब तक तुमने क्या प्रयास किये हैं?

अपनी कक्षाओं कर रहे हैं:

  • वर्ग 0: 90%
  • कक्षा 1: 5%
  • वर्ग 2: 5%

आप SVM के लिए निम्न पैरामीटर पास करना चाहिए :

-w0 5 -w1 90 -w2 90 
+1

धन्यवाद, लेकिन मुझे लगता है कि यह एक और तरीका होना चाहिए: -w0 5 -w1 90 -w2 9 0, क्योंकि छोटी कक्षा में उनके साथ अधिक लागत होनी चाहिए .. इससे मदद मिली! – Damnum

+0

हाँ, मुझे लगता है कि आप सही हैं। मैंने अभी अपना प्रश्न संपादित किया है। धन्यवाद! –

+0

और जब आपके पास 3 से अधिक कक्षाएं हों, तो आप प्रत्येक डब्ल्यू के मूल्य को कैसे विशेषता दे सकते हैं? – lilouch

4

यदि आप एक विकल्प का प्रयास करना चाहते हैं, svmlight परिवार, http://www.cs.cornell.edu/people/tj/svm_light/svm_rank.html में कार्यक्रमों में से एक, सीधे आरओसी वक्र के तहत क्षेत्र को कम करता है।

एयूसी को कम करने से प्रशिक्षण के उदाहरणों को फिर से भारित करने से बेहतर परिणाम मिल सकते हैं।

+1

svmlight वाणिज्यिक-असभ्य है; यह केवल अकादमिक उपयोग के लिए स्वतंत्र है। – JDonner

0

आप grid.py का उपयोग कर किसी भी परिशुद्धता, याद, एफ-स्कोर और एयूसी को अनुकूलित कर सकते हैं। ट्वीक यह है कि आपको LIBSVM में svm-train द्वारा उपयोग किए गए क्रॉस सत्यापन मूल्यांकन उपाय को बदलना होगा। procedure given on LIBSVM website का पालन करें।

0

यदि आपके पास असंतुलित डेटा है, तो शायद आपको सटीकता को अनुकूलित नहीं करना चाहिए। इसके बजाय एफ-स्कोर अनुकूलित करें (या याद रखें, यदि यह आपके लिए अधिक महत्वपूर्ण है)। आप here वर्णित मूल्यांकन फ़ंक्शन को बदल सकते हैं।

मुझे लगता है कि आपको विभिन्न वर्ग वजन विन्यासों का उपयोग करते समय गामा और लागत को भी अनुकूलित करना चाहिए। मैंने उस उद्देश्य के लिए विभिन्न वर्ग भारों को पार करके grid.py में "get_cmd" फ़ंक्शन को संशोधित किया (-wi भार)। मेरे अनुभव में, वर्ग भारोत्तोलन हमेशा मदद नहीं करता है।