Я знаю, что для выбора хороших параметров используется перекрестная проверка. После их поиска мне нужно повторно собрать все данные без опции -v.
Но проблема в том, что после того, как я тренирую с опцией -v, я получаю точность перекрестной проверки (например, 85%). Нет модели, и я не вижу значений C и гаммы. В этом случае, как я переучиваюсь?
Btw я применяя 10-кратное перекрестное подтверждение. например,
optimization finished, #iter = 138
nu = 0.612233
obj = -90.291046, rho = -0.367013
nSV = 165, nBSV = 128
Total nSV = 165
Cross Validation Accuracy = 98.1273%
Нужна помощь по этому поводу.
Чтобы получить лучшие C и гаммы, я использую этот код, который доступен в FAQ LIBSVM
bestcv = 0;
for log2c = -6:10,
for log2g = -6:3,
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('(best c=%g, g=%g, rate=%g)\n',bestc, bestg, bestcv);
end
end
Другой вопрос: эта точность перекрестной проверки после использования опции -v аналогична той, которую мы получаем, когда мы тренируемся без опции -v и используем эту модель для прогнозирования? две аналогичные точности?
Другой вопрос: перекрестная проверка в основном повышает точность модели, избегая переобучения. Таким образом, у него должна быть модель, прежде чем она сможет улучшиться. Я прав? Кроме того, если у меня другая модель, то точность перекрестной проверки будет иной? Я прав?
Еще один вопрос: в точности перекрестной проверки, каково значение C и гамма тогда?
Граф что-то вроде этого
Тогда значения C равны 2 и gamma = 0,0078125. Но когда я переустанавливаю модель с новыми параметрами. Значение не совпадает с 99,63%. Может ли быть какая-то причина? Спасибо заранее...