我正在进行一个项目,使用OpenCV中的SVM进行多类分类。
我的目标是获得分类的置信度得分和预测类别。我怎么做呢?目前我正在尝试以下方法:
float result = mysvm.predict(sample);
我有很多类别时,我更喜欢避免做大量的一对全分类,然后计算分数。
由于OpenCV SVM使用LibSVM实现,我相信有一种方法可以做到这一点,但是查看http://docs.opencv.org/modules/ml/doc/support_vector_machines.html并没有帮助。
感谢提供任何意见。
predict()
函数中的bool returnDFVal=false
可以满足我的需求,但仅适用于二元分类。没有办法在多类分类中获得它吗? - powder- rho: -0.9667...
- sv_count: 1
- alpha: {1.00...}
- sv_index: 0
不太是我预期的...我不应该拥有支持向量的数量,这些向量的数量等于我用于分类的类别数吗? - powderreturnDFVal
。关于sv_count
,你是正确的;它应该与类别数目相符(在这种情况下,在SVM训练阶段提供的标签)。一般来说,我尝试为负样本使用**-1.0**,并为其余样本使用单点正浮点数。 - scap3ydecision_func
是受保护的,因此您可以扩展CvSVM
类并从扩展类中访问该变量。这种方式更好。 - nimcap