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)重新編譯。自己也按照這些步驟去做,最後尼瑪出現各種問題(還是自己水平太菜的問題),一臉心酸。最後在百度知道上看到一段話(
因為我使用的系統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)