मेरी testlabel और trainlabel प्राप्त करने के बाद, मैंने libsvm पर SVM लागू किया और मुझे 97.435 9% की सटीकता मिली। (ग = 1 और जी = 0,00375)LibSVM की शुद्धता
model = svmtrain(TrainLabel, TrainVec, '-c 1 -g 0.00375');
[predict_label, accuracy, dec_values] = svmpredict(TestLabel, TestVec, model);
मैं मिल जाने के बाद सबसे अच्छा सी और जी,
bestcv = 0;
for log2c = -1:3,
for log2g = -4:1,
cmd = ['-v 5 -c ', num2str(2^log2c), ' -g ', num2str(2^log2g)];
cv = svmtrain(TrainLabel,TrainVec, cmd);
if (cv >= bestcv),
bestcv = cv; bestc = 2^log2c; bestg = 2^log2g;
end
fprintf('%g %g %g (best c=%g, g=%g, rate=%g)\n', log2c, log2g, cv, bestc, bestg, bestcv);
end
end
ग = 8 और जी = 0.125
मैं मॉडल फिर से लागू:
model = svmtrain(TrainLabel, TrainVec, '-c 8 -g 0.125');
[predict_label, accuracy, dec_values] = svmpredict(TestLabel, TestVec, model);
मैं 82.0513% की सटीकता प्राप्त
सटीकता को कम करने के लिए यह कैसे संभव है? क्या यह बढ़ाना नहीं चाहिए? या मैं कोई गलती कर रहा हूँ?
मैं LibSVM के मैटलैब एपीआई से परिचित नहीं हूँ, लेकिन आप सुनिश्चित हैं 'सीवी = svmtrain (TrainLabel, TrainVec, cmd);' आप सटीकता दे देंगे? –
यह उन्होंने LIBSVM FAQ में दिया था: http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html पैरामीटर चयन के लिए मैं MATLAB इंटरफ़ेस का उपयोग कैसे कर सकता हूं? – lakesh