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