1. 程式人生 > >Matlab R2017a中libsvm工具箱的安裝

Matlab R2017a中libsvm工具箱的安裝

libsvm工具箱是臺灣大學林智仁(C.J Lin)等人開發的一套簡易、易於實現的SVM模式識別與迴歸軟體包。如何安裝libsvm,網上有很多的教程,但有些教程可能並不適合你所用的系統或者所用的matlab版本,在認真參考網上比較好的資料後,發現自己走了很多彎路。選對了系統和matlab版本(後面會說原因),安裝libsvm並沒有那麼麻煩。

參考資料:

記錄自己安裝libsvm步驟如下:

1、下載libsvm工具箱

解壓下載的壓縮包,我的解壓路徑為C:\Program Files\MATLAB\R2017a\toolbox

2、設定路徑

網上很多教程說需要安裝編譯器(如MinGW-64),然後選擇編譯器(mex -setup)重新編譯。自己也按照這些步驟去做,最後尼瑪出現各種問題(還是自己水平太菜的問題),一臉心酸。最後在百度知道上看到一段話(

https://zhidao.baidu.com/question/1669036600112692947.html)   ,發現在自己所用系統下不需要那麼麻煩:

因為我使用的系統Win10和matlab2017a均為64位,現在libsvm針對64位系統單獨做了封裝,在libsvm下有一個windows目錄,libsvm/windows/*.mexw64,直接將libsvm/windows載入到matlab執行路徑上就可以,無需編譯!

因此新增路徑:

Set Path ->add with subfolders->加入你所解壓的libsvm-3.22資料夾的路徑

或者,你直接在matlb命令視窗執行下面的程式碼來新增路徑:


cd(' C:\Program Files\MATLAB\R2017a\toolbox\libsvm-3.22');%切換至所在目錄
cd windows;
addpath(pwd);%新增路徑
savepath;%儲存路徑

完成上面兩個步驟後進行測試,將當前maltab工作目錄切換至"C:\Program Files\MATLAB\R2017a\toolbox\libsvm-3.22"(為什麼呢?因為在該目錄下有個'heart_scale'資料檔案,需要用到這個資料檔案),執行如下程式碼:
[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);

得到結果如下:

*
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)


成功了!真是驚喜!