libsvm svmpredict方法输出模型文件

时间:2013-04-16 11:31:25

标签: matlab libsvm

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

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

1 个答案:

答案 0 :(得分: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,则模型文件是附加参数。

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

如果需要模型文件,则必须使用libsvm的命令行版本。