Я работаю над MATLAB LIBSVM на некоторое время, чтобы сделать прогноз. У меня есть набор данных, из которых я использую 75% для обучения, 15% для поиска лучших параметров и оставшихся для тестирования. Код приведен ниже.Выполнение дополнительной проверки в LIBSVM matlab
trainX and trainY are the input and output training instances
testValX and testValY are the validation dataset I use
for j = 1:100
for jj = 1:10
model(j,jj) = svmtrain(trainY,trainX,...
['-s 3 -t 2 -c ' num2str(j) ' -p 0.001 -g ' num2str(jj) '-v 5']);
[predicted_label, ~, ~]=svmpredict(testValY,...
testValX,model(j,jj));
MSE(j,jj) = sum(((predicted_label-testValY).^2)/2);
end
end
[min_val,min_indi] = min(MSE(:));
best_predicted_model_rbf(i) = model(min_indi);
Вопрос в том, является ли это правильным. Я создаю модельную матрицу с разными значениями c и g. Я использую ключ -v, который является ключевым здесь. Из предсказанных моделей я использую набор данных проверки для прогнозирования, а там - среднюю квадратную ошибку. Используя этот MSE, я выбираю лучшие c и g. Поскольку я использую -v, который возвращает результат с проверкой перекрестных ссылок, является ли процедура правильной?
Это замечательный улов @Dthal. Я понял, что если перед -v нет пробела, флаг не учитывается. спасибо – ChanChow