Visual studio 2010 在VisualStudio2010上使用LIBSVM

Visual studio 2010 在VisualStudio2010上使用LIBSVM,visual-studio-2010,opencv,python-2.7,classification,libsvm,Visual Studio 2010,Opencv,Python 2.7,Classification,Libsvm,我想在VisualStudio2010中使用libsvm只是为了对我的测试样本进行分类而已 我使用libsvm官方网站提供的文档与libsvm合作 所以我按顺序使用了这些步骤 1) 。svm比例-l 0-s范围train.txt>train.scale 2) 。svm尺度-r range test.txt>test.scale 3) 。grid.py-svm train“MYSVM\u train\u PATH”-gnuplot“MY\u gnuplot\u PATH”train.scale 4

我想在VisualStudio2010中使用libsvm只是为了对我的测试样本进行分类而已

我使用libsvm官方网站提供的文档与libsvm合作

所以我按顺序使用了这些步骤

1) 。svm比例-l 0-s范围train.txt>train.scale

2) 。svm尺度-r range test.txt>test.scale

3) 。grid.py-svm train“MYSVM\u train\u PATH”-gnuplot“MY\u gnuplot\u PATH”train.scale

4) 。svm train-C32-G0.05-B1 train.scale train.model

5) 。svm预测检验.规模训练.模型检验.输出

它工作得很好,但问题是我不知道如何在visual studio中执行这些步骤。。。我只是从上面加载了我的train.model(步骤4),没有在VS10中重复训练过程。。。。这是我的代码:

void main(){
svm_模型*模型;
Model=svm_load_Model(“train.Model”);//从svm列加载(上述步骤4)
svm_节点x[特征_大小];
(获取测试用新特征向量的一些内部过程)
双结果=svm_预测(模型,x);

std::cout您对命令行工具的使用看起来还可以。如果您不以与培训数据相同的方式缩放测试数据,那么predict将失败,正如您所发现的那样

只需从中获取libsvm的源代码,并将svm scale.c中的缩放恢复逻辑合并到代码中即可。 要查看读取缩放参数的位置,请搜索:

    if(restore_filename)
实际的缩放是在一个名为output()的函数中完成的。显然,直接返回一个值而不是打印结果是很简单的


顺便说一句,opencv中的libsvm版本相当旧(因此我避免使用它)。

你确定这一点吗?(我的意思是我的问题在于“不可缩放”我的测试特征向量?如果您缩放了训练数据,但没有对测试数据应用相同的缩放,那么这肯定是一个问题。您可以使用命令行上的
svm predict test train.model test.out
(而不是使用
test.scale
)。当然,VS代码中可能还有其他问题。您使用的测试数据是否与在命令行中使用的相同(可能会打印一些数据以检查它是否真的相同)?我没有那么粗心;),我对这些初步步骤非常确定…,但不管怎样,您帮助了我很多,至少我知道从哪里开始,下一步该怎么做…请注意,从LIBSVM源代码复制代码还需要您复制其版权(BSD许可证)。
    if(restore_filename)