LIBSVM在matlab下的使用安裝


1) 從LIBSVM的官網http://www.csie.ntu.edu.tw/~cjlin/libsvm/上下載最新版本的LIBSVM,當前版本為libsvm-3.18.zip

2) 解壓壓縮包到電腦上一位置,如:C:\Program Files\libsvm-3.18

3) 假設你使用的是64位的操作系統和matlab。此時將libsvm-3.18文件夾下的windows目錄添加到matlab目錄中。即在matlab目錄中添加:C:\ProgramFiles\libsvm-3.18\windows。因為windows下包含了matlab可執行的二進制文件libsvmread.mexw64/libsvmwrite.mexw64/svmpredict.mexw64/svmtrain.mexw64

4) 假設你使用的是32位操作系統和matlab,則需要自己編譯相應的二進制文件。

在matlab命令窗口輸入

        >>mex –setup

這時matlab會提示你選擇編譯mex文件的c/c++編譯器(先輸入n,再選擇對應的編譯器)。

        選擇一個你電腦上安裝的c/c++編譯器,例如Microsoft Visual C++ 2010

將matlab當前目錄設置為:cd ‘C:\Program Files\libsvm-3.18\matlab’

        輸入命令make

這時你會看到當前目錄生成了二進制文件(4個):       

        libsvmread.mexw32

        libsvmwrite.mexw32

        svmpredict.mexw32

        svmtrain.mexw32

將當前目錄添加到matlab路徑中即可。

5) 例子一個測試

        注意到libsvm-3.18下有一個數據文件,名稱為heart_scale。這是一個libsvm格式的數據文件。可使用libsvmread函數將其轉化為matlab格式。

可使用以下命令測試:

        [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

如果出現一行:Accuracy = 86.6667% (234/270) (classification)。就說明成功了。就可以在matlab中使用svm了。

6) 因為svmtrain和原Matlab中自帶的函數有沖突所以,通過如下命令顯示正在使用的是哪個版本的svmtrain函數

which svmtrain

7) 因為libsvm中的svmtrain函數與Matlab中的svmtrain函數重名,當安裝libsvm后又想使用matlab自帶的svmtrain函數時,可以將3)中添加的路徑放到末尾。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM