2

我使用 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”,但它不存在。对我来说有什么不对吗?

4

1 回答 1

2

来自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 的命令行版本。

于 2013-04-16T12:32:09.637 回答