天天看點

matlab libsvm支援向量機工具箱安裝與使用

      http://download.csdn.net/my這裡可以下載下傳支援向量機工具箱,本人maltab R2012B 和3.1比對使用,其他的不行,大家在看着教程出現問題後,如果本文沒有提到,先搜尋錯誤,如果沒有明确給出答案,多嘗試不同的版本也許就可以用了,我的就是一樣的教程換了4個工具箱後才可以使用(版本問題)。

     首先是下載下傳好安裝壓縮包,我這裡下載下傳的是libsvm-3.1.zip,下載下傳好,解壓,然後将其放到MATLAB安裝檔案夾toolbox檔案夾下,這裡說明一點:并不是必須要到這個檔案夾下,隻是為了規範,這樣應用的時候,工具箱就全在toolbox工具箱檔案夾裡了。便于管理和操作。

以我的電腦為例,我的MATLAB安裝在D盤Program Files檔案夾中,那麼我需要将解壓好的libsvm-3.1檔案夾放在D:\Program Files\MATLAB\R2012b\toolbox檔案夾下

然後我們需要将這個路徑設定進來。

點選 file- set path

會彈出下面這個界面,這裡要注意了,很多教程中都是說點選add folders-,但是很多情況下,都會發生錯誤,這是因為如果你的工具箱檔案夾中含有子檔案夾,那麼久無法添加到路徑當中來,那麼應用的時候肯定會發生錯誤。

正确添加方法(如下圖):單擊-add with subfolders,找到剛才的libsvm-3.1檔案夾,确定,然後最後儲存就可以了。

說明:

并不是到這一步,就代表工具箱導入成功了,要具體看工具箱的說明,例如對這一個工具箱libsvm,工具箱還不可以用,還需要進行編譯、make等操作。

一、具體步驟(c++6.0)

切換matlab運作目錄緻:D:\Program Files\MATLAB\R2014b\toolbox\libsvm-3.1\matlab\

matlab libsvm支援向量機工具箱安裝與使用

在MATLAB主視窗中依次輸入

mex -setup 回車,這裡注意-前面是有空格的

y  回車

然後在出現的選項中選擇含有C++6.0的那個選項的序号,例如我的是2,那麼輸入 2 回車,如果是vs2012參考下面的mex-setup

y 回車

make 回車

等待自動執行完畢,導入全部完成,可以使用了。

二、具體步驟(vs2012)

切換matlab運作目錄緻:D:\Program Files\MATLAB\R2014b\toolbox\libsvm-3.1\matlab\

在MATLAB主視窗中依次輸入

>> mex -setup

MEX 配置為使用 'Microsoft Visual C++ 2012 (C)' 以進行 C 語言編譯。

警告: MATLAB C 和 Fortran API 已更改,現可支援包含 2^32-1 個以上元素的 MATLAB 變量。不久以後,您需要更新代碼以利用新的 API。您可以在以下網址找到相關詳細資訊:

 要選擇不同的語言,請從以下選項中選擇一種指令:

mex -setup C++ 

mex -setup FORTRAN 後來按照libsvm提供的最原始辦法:make 解決了 具體步驟如下: 1、下載下傳libsvm,我下載下傳的是libsvm-3.1版本 2、解壓後放到matlab的安裝目錄下,我個人喜歡直接放到matlab下面的toolbox裡面,畢竟這也是其中的工具之一。 3、在matlab主界面找到“設定路徑”,添加檔案夾及其子檔案,索性把整個libsvm-3.1全添加進去,反正可能都要用到。 4、切換matlab運作目錄緻:D:\Program Files\MATLAB\R2014b\toolbox\libsvm-3.1\matlab,在指令行輸入make,也就是該目錄下的那個make檔案。這時候就像以前安裝libsvm一樣,會自動make出來很多檔案,不用管,主要是會看到make出帶有mexm64字尾名的檔案,這就成功了。 5、拷貝4步驟中matlab檔案夾下所有make出來的檔案,到libsvm-3.1\windows檔案夾下,替換替換替換……,統統替換。 6、over,出一口氣,放松一下,距離成功隻差後面的第七步 7、驗證是否成功:使用資料libsvm試驗資料下載下傳 可以将下載下傳後的heart_scale.mat資料複制到剛才的目錄下(其實無所謂)。然後輸入libsvm工具箱特有的語句,就可以驗證成功與否了: >> load heart_scale.mat

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

得到了分類精度,這就證明libsvm安裝成功! 參考文章:http://blog.csdn.net/loadstar_kun/article/details/7712308

繼續閱讀