libsvm安裝(MATLAB)

今天需要用到libsvm,然後就開始了網上找教程之旅。。。一折騰一下午又快過去了-_-#

主要參考鏈接:http://www.cnblogs.com/tornadomeet/archive/2012/06/02/2532201.html

    http://blog.csdn.net/abcjennifer/article/details/7370177

    http://www.yueye.org/2013/problems-of-libsvm-used-in-matlab.html

下載libsvm:

  在網站http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 下載libsvm最新版本3.12,解壓到相應目錄(此處解壓即安裝)。我將其解壓後放在c盤,即C:\Program Files\MATLAB\libsvm-3.12。

設置matlab搜索工作目錄:

  打開matlab,file->Set Path->Add with Subfolders,然後定位到C:\Program Files\libsvm-3.12,注意這裏最好定位到libsvm-3.12,而不要定位到libsvm-3.12子目錄matlab(也不知道是否可以,沒有試過)。點擊Save後單擊Close即可。

設置matlab當前目工作錄:

  將matlab的Current Folder定位到剛剛libsvm-3.12下的matlab目錄,如我的:C:\Program Files\libsvm-3.12\matlab

必須在libsvm下的matlab目錄進行編譯操作

選擇c/c++編譯器:

  在matlab的終端輸入:mex –setup,當出現Would you like mex to locate installed compilers [y]/n?提示時輸入y。然後提示讓你選擇c/c++編譯器,我這裏輸入數字2,即vs c++2010。當出現Are these correct [y]/n?提示時,輸入y即可。當出現如下提示說明編譯器選擇成功:

  

  當然上面成功的是因爲我的編譯器安裝在系統默認的路徑下,如果網友的vs不是安裝在系統默認下則需要選擇n,然後自己手動更改安裝目錄,大家去嘗試下肯定會成功的。

在終端輸入make:

  然後查看C:\Program Files\libsvm-3.12\matlab目錄下是否生成了libsvmread.mexw32,libsvmwrite.mexw32,svmtrain.mexw32,svmpredict.mexw32這4個文件,如果用,說明libsvm的matlab已經編譯成功了。

測試libsvm的matlab工具箱是否可用:

  在命令行輸入下面命令:

  load heart_scale;

  model=svmtrain(heart_scale_label,heart_scale_inst)

  [predict_lebel,accuracy]=svmpredict(heart_scale_label,heart_scale_inst,model)

  則其model顯示爲:

  

  結果顯示爲:

  

  這說明libsvm在matlab中可以使用了。

%問題:

由於自己下的是libsvm-3.20版本,heart_scale.mat文件官方已經不提供了,所以執行第一句命令會報錯

Number of columns on line 2 of ASCII file D:\Program
Files\MATLAB\libsvm-3.20\heart_scale
must be the same as previous lines.

解決方法:

利用libsvmread函數加載

[heart_scale_label,heart_scale_inst]=libsvmread('heart_scale'); 

但又提示can't open input file heart_scale

此時有兩種方法:1.將libsvm提供的heart_scale數據集複製到當前工作目錄

2.將當前目錄設置到libsvm-3.20目錄


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章