【发布时间】:2013-05-11 11:39:53
【问题描述】:
我想在 Visual Studio 2010 中使用 libsvm 只是为了对我的测试样本进行分类,仅此而已..
我使用 libsvm 使用其官方网站提供的文档...
所以我依次使用了这些步骤
1)。 svm-scale -l 0 -s range train.txt> train.scale
2)。 svm-scale -r range test.txt> test.scale
3)。 grid.py -svm-train "MYSVM_TRAIN_PATH" -gnuplot "MY_GNUPLOT_PATH" train.scale
4)。 svm-train -c 32 -g 0.05 -b 1 train.scale train.model
5)。 svm-predict test.scale train.model test.out
它工作得很好,但问题是我不知道如何在 Visual Studio 中执行这些步骤......我只是从上面加载了我的 train.model(步骤 4),并且没有重复训练VS10 中的程序 .... 这是我的代码:
void main(){ svm_model *Model; Model = svm_load_model("train.model");//loaded from svm-train (step4 above) svm_node x[feature_size]; (Some internal Process for obtaining new feature vector for testing) double result = svm_predict(Model,x); std::cout<<"result is"<<result<<std::endl; return 0}但这不会导致 python 代码,在 python 中,我的测试数据的精度为 98%,但在这里它不到 20%!!!!真是太棒了……
我还使用 OPENCV 来训练我的数据和测试我的样本(使用 ml.h) 但在 OPENCV 中,我得到了 70% 的准确率。而且还是比我的实际结果减少了 20% 以上!!!!
我认为问题在于缩放 .. 因为在 svm.h 和 OPENCV 中我都没有找到任何用于缩放我的训练和测试数据的函数.....
【问题讨论】:
标签: visual-studio-2010 opencv python-2.7 classification libsvm