libSVM下載: http://www.csie.ntu.edu.tw/~cjlin/libsvm/
或github(建議github上下載,版本多) https://github.com/cjlin1/libsvm/releases
比較好的一篇安裝libSVM參考博客為: http://blog.csdn.net/lqhbupt/article/details/8596349
我的系統 win7(64位),matlab2014b(64位)。
我開始下載的是最新的版本V321,即 libsvm-3.2.1,將libsvm-3.2.1放在“../matlab2014b/toolbox”下。
因為我的系統均為64位,所以無需編譯,直接通過“設置路徑/添加並包含子文件夾” 選擇“../matlab2014b/toolbox”,點擊“保存”。
然后將當前目錄選擇為“../matlab2014b/toolbox/libsvm-3.2.1”。
matalb輸入 [heart_scale_label,heart_scale_inst]=libsvmread('heart_scale');
出現報錯
Invalid MEX-file 'D:\Program Files\matlab2014b\toolbox\libsvm-3.21\windows\libsvmread.mexw64':
The specified module could not be found.
解決過程:
網上找了各種原因,有一些事說編譯問題,但是我的win7和matlab都是64位。看到有個別人的回答是用libsvm-320,說沒問題。然后就換了libsvm-320,測試通過。
個人考慮,可能是libsvm-3.2.1存在bug,亦或是與matlab2014b不兼容的原因。總之,matlab2014b和libsvm-320,就可以應用libSVM了。
選擇當前目錄為 “../matlab2014b/toolbox/libsvm-320“,如圖
測試代碼如下:
[heart_scale_label,heart_scale_inst]=libsvmread('heart_scale');
model = svmtrain(heart_scale_label,heart_scale_inst, '-c 1 -g 0.07');
[predict_label, accuracy, dec_values] =svmpredict(heart_scale_label, heart_scale_inst, model); % test the trainingdata
得到結果如下:
*
optimization finished, #iter = 134
nu = 0.433785
obj = -101.855060, rho = 0.426412
nSV = 130, nBSV = 107
Total nSV = 130
Accuracy = 86.6667% (234/270) (classification)