поиск значений C и гаммы для оптимизации SVM в Matlab (с использованием LIBSVM) - PullRequest
0 голосов
/ 02 марта 2019

У меня есть массив значений C размером 1x8 (называемый 'C') и массив значений гаммы 1x6 (называемый 'gamma'), для которого я хотел бы найти лучшую пару комбинаций, которая дает наилучшую точность дляМодель обучения SVM, которую я внедряю в Matlab.Я пытаюсь перебрать все возможные комбинации C и гамма, используя два вложенных цикла for следующим образом.Однако в коде что-то не так, потому что я получаю очень низкие оценки точности (только около 9%).Есть какие-нибудь предложения о том, как это исправить?

Для справки, я просмотрел страницу часто задаваемых вопросов LIBSVM (https://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#f803) и нашел пример кода, на котором основан мой код.

Спасибо!

for i=1:8
  for j=1:6
    cmd = ['-t 2 -c ', num2str(C(i)), ' -g ', num2str(gamma(j)), ' -v 2'];
    model = svmtrain(LabelTrain, dataTrain', cmd);

    [predicted_label, accuracy, decision_values] = svmpredict(labelTest, dataTest', model);

    if model > prevModel
        bestC = C(i);
        bestGamma = gamma(j);
        prevModel = model;
    end
  end
end 
...