【发布时间】:2015-04-04 01:19:37
【问题描述】:
我正在尝试使用 libSVM 的 auto_train 函数自动训练我的数据集。 阅读此页http://docs.opencv.org/modules/ml/doc/support_vector_machines.html 我试过这段代码:
CvSVMParams params;
params.svm_type = CvSVM::C_SVC;
params.kernel_type = CvSVM::RBF;
因为我想要一个 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;
但我无法理解两件事:
首先,为什么在newParams.svm_type中它返回给我100(我指定了C-SVC,它应该是0)
第二,这样画参数对吗?
【问题讨论】: