㈠ 我安裝了libsvm工具箱,可是沒有svmpredict函數,求助,急,謝謝各位大俠
問下,這個svmpredict工具箱是用於預測的嗎?如果是的話那我將來也要用到的。。
㈡ libsvm-mat-加強工具箱從哪裡可以下載
http://www.ilovematlab.cn/thread-65333-1-1.html
這個裡面有 我用過
如果你沒有賬號,我版可以發權給你
㈢ 怎麼安裝libsvm工具箱
你的和我的情況一模一樣。
我折騰了兩天最後解決了。
因為matlab軟體是在win XP是弄得,後回來升級的win7最多支持到vista,所以答直接安裝不行。
我在裝的時候,可以安裝,但是打不開,後來發現,只要安裝完之後再matlab的快捷方式下點擊右鍵,在兼容性下面點擊window XP下就可以了。卸載的時候也不能卸,需要找到uninstall.exe這個文件,同樣在兼容性下面點擊window XP下就可以了。如果你連安裝都不能的話,那麼就就在install.exe中點擊右鍵,兼容性下面選擇window XP,然後確定,就一切OK了。
㈣ libsvm安裝在哪個ide裡面
一。下載libsvm
http://www.csie.ntu.e.tw/——cjlin/libsvm/
在libsvm的網站上下載 libsvm-3.12.zip文件,解壓後放在任意目錄下,最好放在MATLAB工具箱中,比如 C:\Program Files\MATLAB\R2011a\toolbox\libsvm-3.12下。
二。配置編譯器
打開 matlab,切換到C:\Program Files\MATLAB\R2011a\toolbox\libsvm-3.12\matlab目錄下,鍵入以下命令:
mex –setup
出現提示語句
Please choose your compiler for building MEX-files:
Would you like mex to locate installed compilers [y]/n?n %這次是選擇編譯器,輸入n,選擇自定義的編譯器
出現以下選項(因電腦而異)
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%可以用其他的,出現以下提示語句
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?
編譯器默認路徑,確認正確輸入y,更改路徑,輸入n
輸入y出現再次確認
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\zhangokun\Application Data\MathWorks\MATLAB\R2011a\mexopts.bat
From template: C:\PROGRA——1\MATLAB\R2011a\bin\win32\mexopts\msvc100opts.bat
Done . . .
三。編譯
輸入命令
》 make
》
%編譯完成
系統就會生成svmtrain.mexw32,svmpredict.mexw32,libsvmread.mexw32和libsvmwrite.mexw32等文件(對於 Matlab 7.1以下上版本,生成的對應文件為svmtrain.dll,svmpredict.dll和read_sparse.dll,沒做測試),然後可以在matlab的菜單 File->Set Path->add with subfolders(可直接用Add Folder)里,把 C:\Program Files\MATLAB\R2011a\toolbox\libsvm-3.12\matlab目錄添加進去,這樣以後在任何目錄下都可以調用 libsvm的函數了。
四。測試
為了檢驗 libsvm和 matlab之間的介面是否已經配置完成,可以在 matlab下執行以下命令:
》load heart_scale
完成該步驟後發現Workspace中出現了heart_scale_inst和 heart_scale_label,說明正確
》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
如果運行正常並生成了model這個結構體(其中保存了所有的支持向量及其系數),那麼說明libsvm和matlab 之間的介面已經完全配置成功。
附:
如果你沒有 heart_scale.mat(官方現在都不給了,給的都是VC++下的格式 所以load 會報錯:heart_scale must be same as previous lines)
所以必須使用給的一個函數,轉化數據此函數為libsvmread()
使用如下: [label_vector, instance_matrix] = libsvmread('filename』);
此處為了跟官方統一名稱可以[heart_scale_label,heart_scale_inst] = libsvmread(『heart_scale』);
由於heart_scale在libsvm-3.11目錄下,不是在matlab下,所以直接用libsvmread命令會報錯,要買改變當前路徑,或者使用[heart_scale_label,heart_scale_inst] = libsvmread(『/heart_scale』);/代表返回上層路徑。
注意:
1. matlab自帶了C編譯器Lcc-win32C,但是libsvm原始版本是C++實現的,因此需要C++的編譯器來編譯,這就是不適用matlab默認編譯器而選擇其他C++編譯器的原因。
matlab支持的編譯器也是有限的,可以查看不同版本matlab支持的編譯器列表
2. 如果matlab版本太低,如matlab 7.0是不能用VS作為編譯器的,只能用VC++ 6.0
3. .mexw32 文件是經過加密的,打開是亂碼,函數本身沒有幫助。
例如輸入 help svmpredict會出現報錯: svmpredict not found
工具箱libsvm-3.12\matlab中README文件才是幫助文件。
但是輸入help svmtrain會出現幫助信息,其實出現的是系統自帶的svmtrain函數,沒有libsvm工具箱中的好用。
4.在新版本libsvm3.12中,文件夾libsvm-3.12\windows中已經有編譯好的程序,可以直接使用,只需要把libsvm-3.12\windows添加到matlab路徑中即可,不需要編譯的過程。當然最好還是自己編譯一遍,因為編譯環境不同會導致一些不可預估的小問題,自己編譯的過程是可控的。
5. 測試用數據集,libsvm官網上提供了很多數據集
測試使用的heart_scale數據集是C++版本的(類標簽 1:第一個屬性 2:第二個屬性…),可以用libsvmread來轉換為matlab版本的(它們的區別在類標簽)。
[label_vector, instance_matrix] = libsvmread(『C++版本數據集』); %得到類標簽和屬性矩陣,然後可以使用它們訓練了model = svmtrain(label_vector, instance_matrix);
》 load heart_scale
》 model = svmtrain(heart_scale_label,heart_scale_inst);
*
optimization finished, #iter = 162
nu = 0.431029
obj = -100.877288, rho = 0.424462
nSV = 132, nBSV = 107
Total nSV = 132
》 [predict_label,accuracy] = svmpredict(heart_scale_label,heart_scale_inst,model);
Accuracy = 86.6667% (234/270) (classification)
6.參考資料
libsvm庫下載:http://www.csie.ntu.e.tw/——cjlin/libsvm/
視頻:http://v.youku.com/v_showMini/id_XMjc2NTY3MzYw_ft_131.html(有小問題,等下會提到)
㈤ 安裝Libsvm工具箱出現問題E:\MATLAB7\BIN\WIN32\MEX.PL: Error: 'CFLAGS=\$CFLAGS -std=c99' not found.
必須在libsvm文件夾下運行,加入到路徑不起作用的。
㈥ 請問Matlab的libsvm工具箱如何進行多元回歸
這個問題其實非常地簡單。
1、在Matlab裡面先做這樣一小段處理:
data = [
0.5 2 12 26 2 0.0476890000000000
0.5 3 14 28 4 0.0792965000000000
0.5 4 16 30 6 0.106723000000000
0.5 5 18 32 8 0.112500000000000
1 2 14 30 8 0.487650000000000
1 3 12 32 6 0.0955300000000000
1 4 18 26 4 0.336150000000000
1 5 16 28 2 0.202830000000000
1.5 2 16 32 4 1.18260000000000
1.5 3 12 30 2 0.273390000000000
1.5 4 18 28 8 0.784670200000000
1.5 5 14 26 6 0.487695000000000
2 2 18 28 6 1.41230000000000
2 3 16 26 8 0.934150000000000
2 4 14 32 2 0.181100000000000
2 5 12 30 4 1.08280000000000
];
x = data(:,1:end-1);
y = data(:,end);
% 上述處理即是將最後一列作為輸出,前n-1列全部作為輸入
2. 將 x, y 分別作為輸入和輸出放入svmtrain函數中訓練
3. 再在svmpredict函數中輸入x即可得出各個x對應的預測值y
註:這里的原理其實十分簡單,在libsvm中其實也是將所有變數都默認為了向量(或矩陣),所以你只管輸入的數據結構即可。
㈦ matlab安裝libsvm工具箱
遇到了同樣的問題 測試也沒有問題 調用的時候出現上面兩個報錯
㈧ matlab r2014a怎樣安裝libsvm工具箱
1.設置路徑:用Add with Subfolders添加目錄(將工具箱所在文件夾的子目錄也添加到MATLAB工作搜索目錄)
2.選擇編回譯器答:mex -setup(mex後面有空格)
3.編譯:make(要把MATLAB當前目錄調整到libsvm工具箱所在文件夾)雙擊make.m文件
PS:運行help train得到的是MATLAB自帶的svmtrain函數的幫助文件
運行help svmpredict會有報錯:svmpredict not found
工具箱中的README穩健可以算是幫助文件
table鍵對函數進行補全!
㈨ matlab2014a中有自帶的libsvm工具箱嗎
R是更像是一個統計軟體。而且因為免費開源,這幾年發展表較快。 我目前個人感覺是,Matlab能乾的,R全能幹,而且沒感覺麻煩太多。