Я знаю, что перекрестная проверка используется для выбора хороших параметров.После их нахождения мне нужно заново обучить все данные без опции -v.
Но проблема, с которой я сталкиваюсь, заключается в том, что после обучения с опцией -v я получаю точность перекрестной проверки (например, 85%).Там нет модели, и я не могу видеть значения C и гамма.В таком случае, как мне переобучиться?
Кстати, я применяю 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 и гамму, я использую этот код, который доступен в LIBSVM FAQ
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 равны 2, а гамма = 0,0078125.Но когда я переучиваю модель с новыми параметрами.Значение не совпадает с 99,63%.Может ли быть какая-то причина?Заранее спасибо ...