- 軟件大小:856KB
- 軟件語(yǔ)言:中文
- 軟件類(lèi)型:國(guó)產(chǎn)軟件
- 軟件類(lèi)別:免費(fèi)軟件 / 其他行業(yè)
- 更新時(shí)間:2017-05-23 10:48
- 運(yùn)行環(huán)境:WinAll, WinXP, Win7, Win8
- 軟件等級(jí):
- 軟件廠商:
- 官方網(wǎng)站:暫無(wú)
120KB/中文/0.0
304KB/中文/10.0
8.73M/中文/10.0
122.18M/中文/2.5
101KB/中文/2.5
libsvm工具箱是一款為matlab打造的工具包,專(zhuān)為計(jì)算智能研究和應(yīng)用開(kāi)發(fā)者,學(xué)生,課堂實(shí)驗(yàn)室準(zhǔn)備。功能更足夠強(qiáng)大,一些論文已開(kāi)始利用它,但即使你是Matlab新手,也很容易學(xué)習(xí)此工具箱。歡迎下載。
LIBSVM是臺(tái)灣大學(xué)林智仁(Lin Chih-Jen)教授等開(kāi)發(fā)設(shè)計(jì)的一個(gè)簡(jiǎn)單、易于使用和快速有效的SVM模式識(shí)別與回歸的軟件包,他不但提供了編譯好的可在Windows系列系統(tǒng)的執(zhí)行文件,還提供了源代碼,方便改進(jìn)、修改以及在其它操作系統(tǒng)上應(yīng)用;該軟件對(duì)SVM所涉及的參數(shù)調(diào)節(jié)相對(duì)比較少,提供了很多的默認(rèn)參數(shù),利用這些默認(rèn)參數(shù)可以解決很多問(wèn)題;并提供了交互檢驗(yàn)(Cross Validation)的功能。該軟件可以解決C-SVM、ν-SVM、ε-SVR和ν-SVR等問(wèn)題,包括基于一對(duì)一算法的多類(lèi)模式識(shí)別問(wèn)題。
一。下載libsvm
在綠色資源網(wǎng)的網(wǎng)站上下載 libsvm-3.12.zip文件,解壓后放在任意目錄下,最好放在MATLAB工具箱中,比如 C:\Program Files\MATLAB\R2011a\toolbox\libsvm-3.12下。
二。配置編譯器
打開(kāi) matlab,切換到C:\Program Files\MATLAB\R2011a\toolbox\libsvm-3.12\matlab目錄下,鍵入以下命令:
mex –setup
出現(xiàn)提示語(yǔ)句
Please choose your compiler for building MEX-files:
Would you like mex to locate installed compilers [y]/n?n %這次是選擇編譯器,輸入n,選擇自定義的編譯器
出現(xiàn)以下選項(xiàng)(因電腦而異)
Select a compiler:
[1] Intel C++ 11.1 (with Microsoft Visual C++ 2008 SP1 linker)
[2] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 SP1 linker)
[3] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 Shell linker)
[4] Lcc-win32 C 2.4.1
[5] Microsoft Visual C++ 6.0
[6] Microsoft Visual C++ 2005 SP1
[7] Microsoft Visual C++ 2008 SP1
[8] Microsoft Visual C++ 2010
[9] Microsoft Visual C++ 2010 Express
[10] Open WATCOM C++
[0] None
Compiler: 8%可以用其他的,出現(xiàn)以下提示語(yǔ)句
Your machine has a Microsoft Visual C++ 2010 compiler located at
C:\Program Files\Microsoft visual studio 10.0. Do you want to use this compiler [y]/n?
編譯器默認(rèn)路徑,確認(rèn)正確輸入y,更改路徑,輸入n
輸入y出現(xiàn)再次確認(rèn)
Please verify your choices:
Compiler: Microsoft Visual C++ 2010
Location: C:\Program Files\Microsoft Visual Studio 10.0
Are these correct [y]/n? y
編譯器配置完成
Trying to update options file: C:\Documents and Settings\zhangduokun\Application Data\MathWorks\MATLAB\R2011a\mexopts.bat
From template: C:\PROGRA~1\MATLAB\R2011a\bin\win32\mexopts\msvc100opts.bat
Done . . .
三。編譯
輸入命令
》 make
》
%編譯完成
系統(tǒng)就會(huì)生成svmtrain.mexw32,svmpredict.mexw32,libsvmread.mexw32和libsvmwrite.mexw32等文件(對(duì)于 Matlab 7.1以下上版本,生成的對(duì)應(yīng)文件為svmtrain.dll,svmpredict.dll和 read_sparse.dll,沒(méi)做測(cè)試),然后可以在matlab的菜單 File->Set Path->add with subfolders(可直接用Add Folder)里,把 C:\Program Files\MATLAB\R2011a\toolbox\libsvm-3.12\matlab目錄添加進(jìn)去,這樣以后在任何目錄下都可以調(diào)用 libsvm的函數(shù)了。
四。測(cè)試
為了檢驗(yàn) libsvm和 matlab之間的接口是否已經(jīng)配置完成,可以在 matlab下執(zhí)行以下命令:
》load heart_scale
完成該步驟后發(fā)現(xiàn)Workspace中出現(xiàn)了heart_scale_inst和 heart_scale_label,說(shuō)明正確
》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); %
Accuracy = 86.6667% (234/270) (classification)% done
如果運(yùn)行正常并生成了model這個(gè)結(jié)構(gòu)體(其中保存了所有的支持向量及其系數(shù)),那么說(shuō)明 libsvm和matlab 之間的接口已經(jīng)完全配置成功。
LIBSVM 使用的一般步驟是:
1) 按照LIBSVM軟件包所要求的格式準(zhǔn)備數(shù)據(jù)集;
2) 對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單的縮放操作;
3) 考慮選用RBF 核函數(shù);
4) 采用交叉驗(yàn)證選擇最佳參數(shù)C與g ;
5) 采用最佳參數(shù)C與g 對(duì)整個(gè)訓(xùn)練集進(jìn)行訓(xùn)練獲取支持向量機(jī)模型;
6) 利用獲取的模型進(jìn)行測(cè)試與預(yù)測(cè)。
1. matlab自帶了C編譯器Lcc-win32C,但是libsvm原始版本是C++實(shí)現(xiàn)的,因此需要C++的編譯器來(lái)編譯,這就是不適用matlab默認(rèn)編譯器而選擇其他C++編譯器的原因。
matlab支持的編譯器也是有限的,可以查看不同版本matlab支持的編譯器列表
2. 如果matlab版本太低,如matlab 7.0是不能用VS作為編譯器的,只能用VC++ 6.0
3. .mexw32 文件是經(jīng)過(guò)加密的,打開(kāi)是亂碼,函數(shù)本身沒(méi)有幫助。
例如輸入 help svmpredict會(huì)出現(xiàn)報(bào)錯(cuò): svmpredict not found
工具箱libsvm-3.12\matlab中README文件才是幫助文件。
但是輸入help svmtrain會(huì)出現(xiàn)幫助信息,其實(shí)出現(xiàn)的是系統(tǒng)自帶的svmtrain函數(shù),沒(méi)有l(wèi)ibsvm工具箱中的好用。
4.在新版本libsvm3.12中,文件夾libsvm-3.12\windows中已經(jīng)有編譯好的程序,可以直接使用,只需要把libsvm-3.12\windows添加到matlab路徑中即可,不需要編譯的過(guò)程。當(dāng)然最好還是自己編譯一遍,因?yàn)榫幾g環(huán)境不同會(huì)導(dǎo)致一些不可預(yù)估的小問(wèn)題,自己編譯的過(guò)程是可控的。
請(qǐng)描述您所遇到的錯(cuò)誤,我們將盡快予以修正,謝謝!
*必填項(xiàng),請(qǐng)輸入內(nèi)容