Ⅰ 我安裝了libsvm工具箱,可是沒有svmpredict函數,求助,急,謝謝各位大俠
問下,這個svmpredict工具箱是用於預測的嗎?如果是的話那我將來也要用到的。。
Ⅱ 怎麼安裝libsvm工具箱
你的和我的情況一模一樣。
我折騰了兩天最後解決了。
因為matlab軟體是在win XP是弄得,後來升級的win7最多支持到vista,所以直接安裝不行。
我在裝的時候,可以安裝,但是打不開,後來發現,只要安裝完之後再matlab的快捷方式下點擊右鍵,在兼容性下面點擊window XP下就可以了。卸載的時候也不能卸,需要找到uninstall.exe這個文件,同樣在兼容性下面點擊window XP下就可以了。如果你連安裝都不能的話,那麼就就在install.exe中點擊右鍵,兼容性下面選擇window XP,然後確定,就一切OK了。
Ⅲ windows下怎麼使用libsvm 3.22
方法/步驟 1 首先去python官網下載Python2.79安裝程序,或者不知道官網地址的話,你也可以在網路下搜索python-2.7.9.msi安裝文件 2 在python官網上點擊Downloads按鈕,選擇"Python2.7.9"按鈕,在彈出對話框中點擊「保存」按鈕 3 點擊下載好的python2.7.9安裝文件 在安裝軟體窗口,點擊"Next>"按鈕 選擇相應的安裝目錄,這里我選擇的是默認安裝目錄C:\Python27,點擊"Next>"按鈕 注意,這里一定要選擇安裝這個組件Add python.exe to Path 選項,點擊"Next>"按鈕 安裝完成後會出現以下提示信息 接下來要為python2.7.0配置Path環境變數 點擊桌面上的計算機圖片,右擊選擇屬性->選擇高級系統設置 選擇環境變數按鈕 選擇Path選項,點擊"編輯",彈出窗口,在變數值框輸入C:\Python27; 在開始菜單里輸入cmd,按下鍵盤上的回車鍵 在命令行窗口中輸入以下命令:python,按下鍵盤上的回車鍵,顯示出python版本信息,到了這里,就成功的安裝了python了!
Ⅳ 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(有小問題,等下會提到)
Ⅳ 求在MATLAB下編譯好(可以直接使用)的libsvm工具箱
以下兩種方法,我已經親測可用
方法1:可以在其他朋友的電腦上進行編譯,編譯完後直接把libsvmread.mexw64、libsvmwrite.mexw64、svmpredict.mexw64、svmtrain.mexw64復制到你自己的程序中即可運行。這種方法的弊端是不同的演算法程序中均需要復制一次。
方法2:把編譯完後的libsvmread.mexw64、libsvmwrite.mexw64、svmpredict.mexw64、svmtrain.mexw64這幾個文件添加到F:\MATLAB 2015a anzhuang\toolbox\libsvm-3.22\matlab下,即可
Ⅵ 如何下載libsvm python
下載libsvm python的方法:
1、訪問「www.csie.ntu.e.tw/~cjlin/libsvm/」網頁,下載zip格式的數據包
2、將文件解壓到python的site-packages文件夾中就可以了
更多Python知識,請關註:Python自學網!!
Ⅶ 安裝Libsvm工具箱出現問題E:\MATLAB7\BIN\WIN32\MEX.PL: Error: 'CFLAGS=\$CFLAGS -std=c99' not found.
\MATLAB\R2011b\toolbox\libsvm-3.18\matlab目錄下,不要放在MATLAB7\BIN\,
Ⅷ libsvm提供的數據集下載
猜測。
既然是libsvm組件, 那數據格式應該默認就是Libsvm格式
label id:weighti id:weight...
label id:weighti id:weight...
這種
Ⅸ 有人知道怎麼把SVDD工具箱裝到libsvm嗎
1 先下載 libsvm-svdd-3.18.zip和 libsvm-3.18.zip,並解壓得到文件夾 libsvm-svdd-3.18和libsvm-3.18;
2 將文件夾 libsvm-svdd-3.18根目錄下的svm.cpp、svm.h和svm-train.c復制到 libsvm-3.18根目錄下並覆蓋回原來的這3個文件;將答文件夾 libsvm-svdd-3.18中 matlab里的文件 svmtrain.c 復制到 libsvm-3.18中的matlab文件夾中覆蓋原來的c文件;
3 安裝 libsvm-3.18,這個教程網上一大堆,主要是兩步:mex -setup和 make;
4 測試安裝是否成功。
Ⅹ 如何在matlab里安裝libsvm包
1.下載好libsvm包
下載libsvm-3.21到隨意一個地方,比如到安裝路徑下的 toolbox下——D:\MATLAB\R2014A\toolbox\下,並解壓。
打開matlab,將libsvm-3.21\matlab 添加到路徑,比如將:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab 添加到路徑。
2.setup 第一次嘗試
若提示沒有C++編譯器,則根據提示的網址去下載 winsdk_web.exe,然後 雙擊運行winsdk_web.exe,安裝到最後若提示失敗,則去卸載自帶的visual studio 和 .netframework 4,然後再運行 winsdk_web.exe,提示缺少 .netframework 4,則自行下載安裝,反復運行 winsdk_web.exe。
直到運行 winsdk_web.exe 時出現如下圖所示情況,說明距成功更近一步了,
選擇 Change,下一步,
勾選上 visual C++ compilers 和 microsoft visual C++ 2010,下一步,
最後提示成功安裝。
2. setup
打開Matlab中,進入LIBSVM根目錄下的matlab目錄(如D:\MATLAB\R2014A\toolbox\libsvm-3.21),在命令窗口的輸入mex -setup 輸出為:
>>mex –setup
MEX 配置為使用 'Microsoft Windows SDK 7.1 (C)' 以進行 C 語言編譯。
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
要選擇不同的語言,請從以下選項中選擇一種命令:
mex -setup C++
mex -setup FORTRAN
繼續:
>> mex -setup C++
MEX 配置為使用 'Microsoft Windows SDK 7.1 (C++)' 以進行 C++ 語言編譯。
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
3.編譯
執行 make,輸出如下:
>> make
使用 'Microsoft Windows SDK 7.1 (C)' 編譯。
MEX 已成功完成。
使用 'Microsoft Windows SDK 7.1 (C)' 編譯。
MEX 已成功完成。
使用 'Microsoft Windows SDK 7.1 (C++)' 編譯。
找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmtrain.exp
找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmtrain.exp
MEX 已成功完成。
使用 'Microsoft Windows SDK 7.1 (C++)' 編譯。
找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmpredict.exp
找不到 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab\svmpredict.exp
MEX 已成功完成。
>>
4.重命名
忽略錯誤(找不到……),繼續,編譯完成後,在當前目錄下(libsvm-3.21/matlab下)會出現svmtrain.mexw64、svmpredict.mexw64 或者svmtrain.mexw32、svmpredict.mexw32 ,把文件名svmtrain和svmpredict 相應改成 libsvmtrain 和 libsvmpredict。
這是因為Matlab中自帶有SVM的工具箱,其函數名字就是svmtrain和svmpredict,和 libsvm 默認的名字一樣.
5.測試是否安裝成功libsvm
libsvm 軟體包中自帶有測試數據,即軟體包根目錄下的 heart_scale 文件。
在matlab運行代碼,輸出如下:
>> [heart_scale_label, heart_scale_inst] = libsvmread('heart_scale');
>> model = libsvmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
*
optimization finished, #iter = 134
nu = 0.433785
obj = -101.855060, rho = 0.426412
nSV = 130, nBSV = 107
Total nSV = 130
>> [predict_label, accuracy, dec_values] = libsvmpredict(heart_scale_label, heart_scale_inst, model);
Accuracy = 86.6667% (234/270) (classification)
>>
OK ,perfect ! Congratulations to you!
如果遇到:
>> [heart_scale_label, heart_scale_inst] = libsvmread('heart_scale');
Invalid MEX-file 'C:\Users\jiao\Documents\MATLAB\libsvm-3.20\matlab\libsvmread.mexw64': 找不到指定的模塊。
則把 D:\MATLAB\R2014A\toolbox\libsvm-3.21\matlab 文件夾添加到路徑就可以了。