2013-04-16 59 views
2

我使用libsvm svmpredict方法對Matlab上的圖像進行分類。 我需要svmpredict方法的輸出模型文件,其擴展名爲「.model」。但我無法創建它。我的用法是,libsvm 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」,但它不存在。 我有什麼不對嗎?

+0

您需要提供更多信息:您如何執行libsvm?從C++,Java,命令行...? – Sentry

+1

我在MATLAB中使用libsvm。我在matlab .m文件中使用svmtrain和svmpredict方法。我使用Matlab7.8.0(R2009a)和visaul 2008 C++編譯器。 – user2286211

+0

啊,對不起,我沒有看到那個音符。 – Sentry

回答

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。

+0

「如果你想要一個模型文件,你必須使用命令行版本的libsvm。」我不明白。 另外,我在libsvm的自述文件中看到它。 svm-predict [options] test_file model_file output_file 我問這個output_file。我可以保存這個output_file嗎? – user2286211

+1

您正在使用libsvm for MATLAB。您所指的自述文件是用於命令行的。你知道,當你打開命令行,一個終端,一個shell,然後鍵入'svm-predict -t 2 test.ft train.model output'或其他東西。 – Sentry

+0

謝謝你的回答。 – user2286211