什么';函数predict的意义&x27;OpenCV中的返回值是多少?

什么';函数predict的意义&x27;OpenCV中的返回值是多少?,opencv,machine-learning,svm,predict,Opencv,Machine Learning,Svm,Predict,我在opencv中使用函数predict,对我的手势进行分类 svm.load("train.xml"); float ret = svm.predict(mat);//mat is my feature vector 我定义了5个标签(1.0,2.0,3.0,4.0,5.0),但实际上ret的值是(0.521220207,-0.247173533,-0.127723947··) 所以我对此感到困惑。作为Opencv官方文档,函数在我的例子中返回一个类标签(分类) 更新:我仍然不知道为什么会出

我在opencv中使用函数
predict
,对我的手势进行分类

svm.load("train.xml");
float ret = svm.predict(mat);//mat is my feature vector
我定义了5个标签
(1.0,2.0,3.0,4.0,5.0)
,但实际上ret的值是
(0.521220207,-0.247173533,-0.127723947··)

所以我对此感到困惑。作为Opencv官方文档,函数在我的例子中返回一个类标签(分类)


更新:我仍然不知道为什么会出现这个结果。但是我选择了新的特征来训练模型,预测函数的返回值是我在训练阶段定义的(例如1、2、3等)。

在SVM训练期间,为每类训练数据指定一个标签

当您对样本进行分类时,返回的结果将与其中一个标签匹配,告诉您该样本预计属于哪一类

这里还有一些文档可能会有所帮助:


使用支持向量机(SVM),您可以使用训练函数和预测函数。培训功能是培训您的数据并将这些信息保存在xml文件中(如果您使用大量培训数据,并且必须在另一个项目中执行预测功能,那么它有助于预测过程)

示例:每个类20个图像在您的案例中:20*5=100个培训图像,每个图像都与相应类的标签关联,所有这些信息都存储在train.xml中)

对于预测函数,它告诉您根据训练数据(训练过程中所做的孔加工)为测试图像指定的标签。你的预测结果可能是好的,也可能是坏的,我认为这都与你的训练数据有关


如果您想计算分类器的错误率,看看它能给出多少好结果或坏结果。

我猜:返回值是每个类的质量/置信度度量。也许它们从1.0=最佳到-1.0=最差。但也许其他人知道一个事实。请使用整数标签进行分类。(否则它会认为,你需要回归)