Я пытаюсь автоподготовку моего набора данных с помощью функции auto_train libSVM. Читая эту страницу http://docs.opencv.org/modules/ml/doc/support_vector_machines.html я пытался с этим кодом:Как использовать auto_train в C++ с libSVM
CvSVMParams params;
params.svm_type = CvSVM::C_SVC;
params.kernel_type = CvSVM::RBF;
Потому что я хотел РФБ ядра. А потом:
CvSVM SVM;
SVM.train_auto(trainFINAL, labelsFinal, Mat(), Mat(), params, 10, ...
CvSVM::get_default_grid(CvSVM::C), CvSVM::get_default_grid(CvSVM::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), ...
false);
После этого я попытался построить новые параметры таким образом:
CvSVMParams newParams = SVM.get_params();
cout << endl;
cout << "KERNEL : " << newParams.kernel_type << endl;
cout << "SVM TYPE : " << newParams.svm_type << endl;
cout << "degree : " << newParams.degree << endl;
cout << "gamma : " << newParams.gamma << endl;
cout << "coef0 : " << newParams.coef0 << endl;
cout << "Cvalue : " << newParams.C << endl;
cout << "p : " << newParams.p << endl;
Но я не могу понять 2 вещи:
первый, почему в newParams.svm_type он возвращается ко мне 100 (я указал C-SVC, он должен быть 0)
Во-вторых, правильно ли построить параметры таким образом?