Оптимизация параметров SVM в Opencv

Я хочу оптимизировать параметры SVM в Opencv. Но каждый раз, когда я используюtrain_auto я получилC=1 а такжеgamma=1, Некоторые люди используют LibSVM, но я не мог написать обертку для этого. И то и другоеtrainingData а такжеlabels взяты из существующего кода, который дает хорошие результаты, поэтому я пытаюсь получить те же параметры для этого кода сtrain_auto, В оригинальном кодеC=312.5 а такжеgamma=0.50625, Я видел, что кто-то использовалCvStatModel для Python, это необходимо для C ++? Где я могу ошибиться? Заранее спасибо.

Код:

CvParamGrid CvParamGrid_C(pow(2.0,-5), pow(2.0,15), pow(2.0,2));
CvParamGrid CvParamGrid_gamma(pow(2.0,-15), pow(2.0,3), pow(2.0,2));
if (!CvParamGrid_C.check() || !CvParamGrid_gamma.check())
    cout<<"The grid is NOT VALID."<<endl;
CvSVMParams paramz;
paramz.kernel_type = CvSVM::RBF;
paramz.svm_type = CvSVM::C_SVC;
paramz.term_crit = cvTermCriteria(CV_TERMCRIT_ITER,100,0.000001);
svm.train_auto(trainingData, labels, Mat(), Mat(), paramz,10, CvParamGrid_C, CvParamGrid_gamma, CvSVM::get_default_grid(CvSVM::P), CvSVM::get_default_grid(CvSVM::NU), CvSVM::get_default_grid(CvSVM::COEF), CvSVM::get_default_grid(CvSVM::DEGREE), true);
svm.get_params();
cout<<"gamma:"<<paramz.gamma<<endl;
cout<<"C:"<<paramz.C<<endl;

Ответы на вопрос(1)

Ваш ответ на вопрос