Optimización de parámetros SVM en Opencv

Quiero optimizar los parámetros de SVM en Opencv. Pero, cada vez que usotrain_auto yo obtengoC=1 ygamma=1. Algunas personas usan LibSVM pero no pude escribir un contenedor para eso. AmbostrainingData ylabels se toman de un código existente que da buenos resultados, así que estoy tratando de obtener los mismos parámetros para ese código contrain_auto. En el código originalC=312.5 ygamma=0.50625. Vi que alguien usabaCvStatModel para python, ¿es necesario para C ++? ¿Dónde me equivoco? Gracias por adelantado.

El código:

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;

Respuestas a la pregunta(1)

Su respuesta a la pregunta