내 testlabel 및 trainlabel을 얻은 후 libsvm에서 SVM을 구현했으며 정확도는 97.4359 %입니다. 내가 모델을 다시 구현정확도 LibSVM 감소
내가 최고의 C와 g를 찾은 후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
C = 8, g = 0.125
(= 0.00375 C = 1 g) :
model = svmtrain(TrainLabel, TrainVec, '-c 8 -g 0.125');
[predict_label, accuracy, dec_values] = svmpredict(TestLabel, TestVec, model);
나는 82.0513 %의 정확도를 얻을 수
정확도를 어떻게 낮출 수 있습니까? 그것을 증가 시켜서는 안됩니까? 아니면 내가 실수 한거야?
내가 LibSVM의 매트랩 API에 익숙하지 않은 해요,하지만 당신은 확신'CV = svmtrain (TrainLabel, TrainVec, cmd를)'당신에게 정확성을 줄 것이다? –
이것은 LIBSVM FAQ에서 제공 한 것입니다 : http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html 매개 변수 선택을 위해 MATLAB 인터페이스를 어떻게 사용할 수 있습니까? – lakesh