मल्टीस्कल्स वर्गीकरण में स्किकिट एसवीएम का आउटपुट हमेशा एक ही लेबल देता है


10

मैं वर्तमान में निम्नलिखित कोड के साथ स्किकिट सीख रहा हूं:

clf = svm.SVC(C=1.0, tol=1e-10, cache_size=600, kernel='rbf', gamma=0.0, 
              class_weight='auto')

और फिर 7 अलग-अलग लेबल वाले डेटा के सेट के लिए फिट और भविष्यवाणी करें। मुझे एक अजीब आउटपुट मिला। कोई बात नहीं जो मान्यता तकनीक को पार करता है मैं सत्यापन सेट पर पूर्वानुमानित लेबल का उपयोग करता हूं वह हमेशा लेबल 7 होने वाला है।

मैं पूर्ण डिफ़ॉल्ट एक ( svm.SVC()) सहित कुछ अन्य मापदंडों का प्रयास करता हूं, लेकिन जब तक मैं जिस कर्नेल विधि का उपयोग करता हूं वह rbfइसके बजाय है polyया linearयह सिर्फ काम नहीं करेगा, जबकि यह वास्तव में polyऔर के लिए ठीक काम करता है linear

इसके अलावा मैंने पहले ही सत्यापन डेटा के बजाय ट्रेन डेटा पर भविष्यवाणी करने की कोशिश की है और यह पूरी तरह से फिट है।

क्या किसी को पहले इस तरह की समस्या दिखाई देती है और पता है कि यहां क्या चल रहा है?

मैं अपने वर्ग वितरण पर कभी विस्तार से नहीं देखता, लेकिन मुझे पता है कि यह लगभग ३०% होना चाहिए, at, १४% ४ हैं।

मैं एक मैनुअल 1-बनाम-बाकी कार्यान्वयन का भी प्रयास करता हूं और यह अभी भी मददगार नहीं है।


आपके डेटा के अनुपात क्या हैं जो प्रत्येक वर्ग में आते हैं?
गूँग -

मेरे डेटा में वास्तव में अधिक "7" हैं लेकिन इतना नहीं। उनमें से लगभग 30% हैं 7. @gung
तमाकी सकुरा

जवाबों:


10

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

scikit-learn में सीमित हाइपरपैरेट खोज सुविधाएं हैं, लेकिन आप इसे ऑप्ट्यूनिटी जैसे ट्यूनिंग लाइब्रेरी के साथ मिलकर उपयोग कर सकते हैं । ट्यूनिंग स्किकिट-लर्न एसवीसी के साथ ऑप्ट्यूनिटी के बारे में एक उदाहरण यहां उपलब्ध है

अस्वीकरण: मैं Optunity के प्रमुख डेवलपर हूं।


मैंने वास्तव में सी और गामा के हर संयोजन की कोशिश की है जो कि 0 से 4 तक 10 की शक्ति है, लेकिन उनमें से सभी ने मुझे पूरा दिया 7. अगर मैं सही तरीके से स्किक सीखता हूं, तो मैं भी संदेह करना शुरू कर दूंगा।
तमकी सकुरा

8

समस्या पैरामीटर परीक्षण होने की ओर इशारा करती है। मैंने कोशिश नहीं की है जब gamma0.0 के बीच है (जो 1 / n_feature है) और 1. मेरे डेटा gammaपर कुछ के आसपास बारी चाहिए1e-8


4
γ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.