LibSVM 在matlab中的使用
搞了一天,看了很多資料,終于搞好了matlab中調用大牛寫好的svm庫,將結果告訴大家避免以后走彎路。
1. 參考網站:
libsvm庫下載:http://www.csie.ntu.edu.tw/~cjlin/libsvm/
視頻:http://v.youku.com/v_showMini/id_XMjc2NTY3MzYw_ft_131.html?(有小問題,等下會提到)
詳解:http://www.matlabsky.com/thread-11925-1-1.html
2. 操作流程:
請注意:詳細操作流程請參考上面的“詳解”網站,這里只說大框架和詳解里沒有提到的問題。
A.設置path
File->set path ->add with subfolders->加入libsvm-3.11文件夾的路徑
B. 在matlab中編譯
目的:將libsvm-3.11\matlab 中?libsvmwrite.c 等 C++文件編譯成 libsvmread.mexw32 等matlab文件,這樣就可以在command window中被直接調用了。
注意:在最外面的Readme中有提到已經有編譯好的文件,比如在libsvm-3.11\windows中也會看到libsvmread.mexw32,但這里不要被誤導!還是需要你自己再編譯一遍的!(還有如果matlab版本太低,如matlab 7.0是不能用VS作為編譯器的,只能用VC++ 6.0,這是我勸你給matlab升級吧!別裝vc了~我就是這樣,升級到Matlab 2011b就可以用VS2008做編譯器了)
C.加載數據集
就是這里搞了我一下午!
加載數據集
[cpp]?view plaincopy
有兩個數據集,一個是C++的, 一個是matlab的。libsvm庫中下載的是C++數據,
所以matlab加載我們下載的heart_scale是會報錯的:<這就是視頻中遺漏的小問題>
[cpp]?view plaincopy
法1、下載matlab數據集(http://download.csdn.net/detail/abcjennifer/4215779)
法2、用libsvmread而非load,就是這里
[cpp]?view plaincopy
這樣就可以加載數據集了,完成該步驟后發現Workspace中出現了heart_scale_inst 和 heart_scale_label,說明正確。
ok,下一步我們來測試svm的訓練和predict
D.train & predict
[cpp]?view plaincopy
[cpp]?view plaincopy
=========================MAC 版如何在matlab中使用libsvm=========================
下面說下mac怎么用libsvm,這里的問題是mex -setup的問題,需要安裝一個補丁。
1. mac中安裝xcode
2. xcode的preference中裝command line tools
3. 下載最新補丁http://www.mathworks.cn/support/solutions/en/data/1-FR6LXJ/
4. 在matlab命令行輸入>>cd(matlabroot)
5.?在matlab命令行輸入這個打補丁
>>!unzip -o ~/Downloads/optsPatch_MACOSX8.patch
6. 可以運行mex -setup了,選擇將原來的gcc覆蓋掉
7. 到libsvm/matlab進行make
就搞定啦!
具體參考:http://bbs.weiphone.com/read-htm-tid-5787323.html
就OK了。祝大家成功快速實現!
from: http://blog.csdn.net/abcjennifer/article/details/7370177
總結
以上是生活随笔為你收集整理的LibSVM 在matlab中的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 压缩感知进阶——有关稀疏矩阵
- 下一篇: matlab显示的图片,手动保存时四周有