1.下載下傳libsvm
http://www.csie.ntu.edu.tw/~cjlin/libsvm/
在libsvm的網站上下載下傳 libsvm-3.12.zip檔案,解壓後放在任意目錄下,最好放在MATLAB工具箱中,比如 D:\program files (x86)\MATLAB\R2014a\toolbox\libsvm-3.22下。
2.打開matlab,添加libsvm的目錄,如下圖所示
3.MATLAB編譯器下,指令視窗輸入 mex -setup ,前提本機裝有visual studio編譯器
4.編譯生成檔案
指令視窗輸入:make。輸入make,會有提示 找不到 svmtrain.exp svmpredict.exp,沒關系。隻要在libsvm/matlab目錄下生成了 這4個檔案libsvmread.mexw32,libsvmwrite.mexw32,svmtrain.mexw32,svmpredict.mexw32 就行了,把這4個檔案複制到..MATLAB\R2014a\toolbox\libsvm-3.22\windows 下替換原來的檔案
5.測試
5.1
>> load heart_scale;
錯誤,去下載下傳heart_scale.mat檔案放在libsvm-3.22檔案下
改為load('heart_scale.mat')
5.2
>> model = svmtrain(heart_scale_label, heart_scale_inst);
輸出*
optimization finished, #iter = 162
nu = 0.431029
obj = -100.877288, rho = 0.424462
nSV = 132, nBSV = 107
Total nSV = 132
5.3
>> [predict_label,accuracy] = svmpredict(heart_scale_label,heart_scale_inst,model);
錯誤彈出
Usage: [predicted_label, accuracy, decision_values/prob_estimates] = svmpredict(testing_label_vector, testing_instance_matrix, model, 'libsvm_options')
[predicted_label] = svmpredict(testing_label_vector, testing_instance_matrix, model, 'libsvm_options')
Parameters:
model: SVM model structure from svmtrain.
libsvm_options:
-b probability_estimates: whether to predict probability estimates, 0 or 1 (default 0); one-class SVM not supported yet
-q : quiet mode (no outputs)
Returns:
predicted_label: SVM prediction output vector.
accuracy: a vector with accuracy, mean squared error, squared correlation coefficient.
prob_estimates: If selected, probability estimate vector.
格式錯誤
改為
>> [predict_label, accuracy,decision_values ] = svmpredict(heart_scale_label, heart_scale_inst, model,'-b 0');
輸出
Accuracy = 86.6667% (234/270) (classification)
表示測試成功,安裝成功