मुझे पता है कि LIBSVM बहु-वर्ग एसवीएम की बात करते समय केवल एक बनाम एक वर्गीकरण की अनुमति देता है। हालांकि, मैं इसे एक-विरुद्ध-वर्गीकरण करने के लिए थोड़ा सा ट्विक करना चाहता हूं। मैंने नीचे एक-एक-एक करके प्रदर्शन करने की कोशिश की है। क्या यह सही दृष्टिकोण है?मल्टी-क्लास एसवीएम (सभी बनाम एक)
कोड:
TrainLabel;TrainVec;TestVec;TestLaBel;
u=unique(TrainLabel);
N=length(u);
if(N>2)
itr=1;
classes=0;
while((classes~=1)&&(itr<=length(u)))
c1=(TrainLabel==u(itr));
newClass=c1;
model = svmtrain(TrainLabel, TrainVec, '-c 1 -g 0.00154');
[predict_label, accuracy, dec_values] = svmpredict(TestLabel, TestVec, model);
itr=itr+1;
end
itr=itr-1;
end
मैं कुछ गलतियों किया है हो सकता है। मैं कुछ फीडबैक सुनना चाहता हूं। धन्यवाद।
दूसरा भाग: अंगूर के रूप में कहा गया: मुझे अंतिम उत्तर के साथ आने के लिए Sum-pooling (या सरलीकृत समाधान के रूप में मतदान) करने की आवश्यकता है। मुझे यकीन नहीं है कि यह कैसे करें। मुझे इसके बारे में कुछ मदद चाहिए; मैंने अजगर फ़ाइल देखी लेकिन अभी भी बहुत यकीन नहीं है। मैं कुछ मदद की जरूरत है।
वास्तव में सवाल क्या है? आप पूछ रहे हैं कि LibSVM के साथ एक-बनाम सभी वर्गीकरण कैसे करें? क्या प्रोग्राम आपके द्वारा अपेक्षित परिणाम आउटपुट करता है? बीटीडब्ल्यू, लिब्सवीएम पैरामीटर '-सी 1-जी 0.00153' होना चाहिए (आपको अंतिम एकल उद्धरण की कमी है)। – grapeot
मैंने प्रश्न संपादित किया है ... – lakesh
@lakesh: मैंने एक समान प्रश्न का उत्तर पोस्ट किया है, तो आपको उपयोगी मिल सकता है: http://stackoverflow.com/a/9049808/97160 – Amro