Точность LibSVM снижается

Получив тестовую метку и трейн-метку, я реализовал SVM на libsvm и получил точность 97,4359%. (c = 1 и g = 0,00375)

model = svmtrain(TrainLabel, TrainVec, '-c 1 -g 0.00375');
[predict_label, accuracy, dec_values] = svmpredict(TestLabel, TestVec, model);

После того, как я нахожу лучшие c и g,

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

я снова реализую модель:

 model = svmtrain(TrainLabel, TrainVec, '-c 8 -g 0.125');
[predict_label, accuracy, dec_values] = svmpredict(TestLabel, TestVec, model);

я получаю точность 82,0513%

Как возможно снижение точности? не должно ли оно увеличиваться? Или я ошибаюсь?

5
задан lakesh 20 January 2012 в 17:13
поделиться