【问题标题】:libsvm svmpredict method output model filelibsvm svmpredict 方法输出模型文件
【发布时间】:2013-04-08 18:58:43
【问题描述】:

我使用 libsvm svmpredict 方法在 Matlab 上对图像进行分类。 我需要扩展名为“.model”的 svmpredict 方法的输出模型文件。但我无法创建它。我的用法是,

model = svmtrain(train_label_set_libsvmformat, train_data_set_libsvmformat, '-t 2 -c 0.3 -g 0.01');
[predict_label, accuracy, prob_values] = svmpredict(test_label_set_libsvmformat, test_data_set_libsvmformat, model, 'output.model');

我正在等待创建此文件“output.model”,但它不存在。 我有什么问题吗?

【问题讨论】:

  • 你需要给我们更多的信息:你如何执行libsvm?从 C++、Java、命令行、...?
  • 我在 matlab 中使用 libsvm。我在 matlab .m 文件中使用 svmtrain 和 svmpredict 方法。我使用 Matlab7.8.0(R2009a) 和 visaul 2008 c++ 编译器。
  • 啊,抱歉,我没看到那张字条。

标签: matlab libsvm


【解决方案1】:

来自https://sites.google.com/site/kittipat/libsvm_matlab

% Train the SVM
model = svmtrain(trainLabel, trainData, '-c 1 -g 0.07 -b 1');
% Use the SVM model to classify the data
[predict_label, accuracy, prob_values] = svmpredict(testLabel, testData, model, '-b 1'); % run the SVM model on the test data

svmpredict 的最后一个参数不是文件名,而是要传递给svmpredict 的选项。如果要将模型保存到文件中,通常在svmtrain 中训练模型时完成。如果你使用svm-train的命令行版本,模型文件是一个附加参数。

根据我对 MATLAB 的 libsvm 源代码所做的,您通过执行svmtrain 命令得到的模型只是 MATLAB 中的一个标量,因此没有内置的方法来获取模型文件。

如果你想要一个模型文件,你必须使用 libsvm 的命令行版本。

【讨论】:

  • "如果你想要一个模型文件,你必须使用 libsvm 的命令行版本。"我不明白。另外,我在 libsvm 的自述文件中看到了它。 svm-predict [options] test_file model_file output_file 我问这个 output_file。我可以保存这个 output_file 吗?
  • 您正在为 MATLAB 使用 libsvm。您所指的自述文件是针对命令行的。你知道的,当你打开命令行、终端、shell,然后输入svm-predict -t 2 test.ft train.model output 什么的。
猜你喜欢
  • 2012-04-19
  • 1970-01-01
  • 2016-04-04
  • 2010-12-17
  • 2013-08-15
  • 2015-12-11
  • 2013-07-10
  • 2012-12-17
  • 2012-06-02
相关资源
最近更新 更多