如何用libSVM在C++中使用auto_train
How to use auto_train in C++ with libSVM
我正在尝试使用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)
其次,用这种方式绘制参数是正确的吗?
"首先,为什么在newParams.svm_type中它返回给我100(我指定了C-SVC,它应该是0)"
OpenCV枚举与LibSVM略有不同,请参阅http://docs.opencv.org/ref/2.4/dd/d88/classCvSVM.html
SVC为100,是OpenCV中的第一类SVM(而不是LibSVM中的0)。
"第二,用这种方式绘制参数是正确的吗?"
我不确定你所说的"绘制"参数是什么意思,但如果你想知道newParams是否是优化的参数,那么是的。
相关文章:
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 如何在自定义类中启用'auto loops'?
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 为什么当我为 for(auto& it : myUnorderedMap) {... = std::move(it.second)} 时,我会得到一个 const 引用?
- 为什么结构化绑定不使用"auto&"返回对结构成员的引用,而是返回成员本身
- 擦除许多矢量元素,同时使用'auto'
- 考虑到其他好处,关键字'auto'真的有助于简化调试C++吗?
- 为什么"weak.lock()"返回"nullptr" "auto weak=std::make_shared<int>(42);"的定义?
- 推理类型如何工作"auto"和按引用调用?
- 'auto *x = new some_struct{};"是一个未初始化的变量?
- 为什么 std::gcd/lcm 返回 std::common_type_t<M, N> 而不是 auto?
- 将函数参数类型声明为 auto
- 使用constexpr + auto作为返回和参数类型的奇怪类型推导
- 为什么 const auto &p{nullptr} 在 C++17 中不起作用,而 auto *p{nullptr} 不起作用?
- C++/11 auto 关键字是在更有效时推导参数进行按引用传递,还是始终按值传递?
- 使用"auto"推断嵌套初始值设定项列表的类型
- const auto & 和 auto & if reference 对象之间的区别是 const
- C++:带有 "auto" 的二维数组上的嵌套 For 循环
- 在扣除自动之前使用decltype(auto) <func>
- "auto"推断出 hashtable_policy.h 中的错误类型