Ⅰ 安裝了libsvm,matlab自帶的svmtrain怎麼用
1、 配置C環境:
在MATLAB中任意路徑下,輸入mex –setup
然後按步驟進行
2、 添加路徑
(1) 將libsvm工具箱復制到MATLAB的toolbox文件夾下
(2) Set path-------Add withSubfolders,將libsvm的工具箱文件夾添加到路徑中
3、 編譯
將當前路徑設置為libsvm工具箱中的matlab文件夾下,輸入make即可。
此時,若直接調用svmtrain(),則用的還是MATLAB自帶的函數。
Ⅱ 如何利用python使用libsvm
一:libsvm包下載與使用:
LIBSVM是台灣大學林智仁(Lin Chih-Jen)副教授等開發設計的一個簡單、易於使用和快速有效的SVM模式識別與回歸的軟體包,他不但提供了編譯好的可在Windows系列系統的執行文件,還提供了源代碼,方便改進.
把包解壓在C盤之中,如:C:\libsvm-3.18
2.
因為要用libsvm自帶的腳本grid.py和easy.py,需要去官網下載繪圖工具gnuplot,解壓到c盤
3.
進入c:\libsvm\tools目錄下,用文本編輯器(記事本,edit都可以)修改grid.py和easy.py兩個文件,找到其中關於gnuplot路徑的那項,根據實際路徑進行修改,並保存
4python與libsvm的連接(參考SVM學習筆記(2)LIBSVM在python下的使用 )
a.打開IDLE(python GUI),輸入
>>>import sys
>>>sys.version
如果你的python是32位,將出現如下字元:
『2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)]』
這個時候LIBSVM的python介面設置將非常簡單。在libsvm-3.16文件夾下的windows文件夾中找到動態鏈接庫libsvm.dll,將其添加到系統目錄,如`C:\WINDOWS\system32\』,即可在python中使用libsvm
b.如果你是64位的請參考文獻,請參考上述連接。
5.執行一個小例子
import os
os.chdir('C:\libsvm-3.18\python')#請根據實際路徑修改
from svmutil import *
y, x = svm_read_problem('../heart_scale')#讀取自帶數據
m = svm_train(y[:200], x[:200], '-c 4')
p_label, p_acc, p_val = svm_predict(y[200:], x[200:], m)
##出現如下結果,應該是正確安裝了
optimization finished, #iter = 257
nu = 0.351161
obj = -225.628984, rho = 0.636110
nSV = 91, nBSV = 49
Total nSV = 91
Accuracy = 84.2857% (59/70) (classification)
二幾個簡單的例子
從下載實驗數據集。並且將數據集拷貝到C:\libsvm-3.18\windows下(因為之後我們需要利用該文件夾下的其他文件,這樣比較方便,當然之後你用絕對地址也可以了)
建立一個py文件,寫下如下代碼:
例1:
import os
os.chdir('C:\libsvm-3.18\windows')#設定路徑
from svmutil import *
y, x = svm_read_problem('train.1.txt')#讀入訓練數據
yt, xt = svm_read_problem('test.1.txt')#訓練測試數據
m = svm_train(y, x )#訓練
svm_predict(yt,xt,m)#測試
執行上述代碼,精度為:Accuracy = 66.925% (2677/4000) (classification)
常用介面
svm_train() : train an SVM model#訓練
svm_predict() : predict testing data#預測
svm_read_problem() : read the data from a LIBSVM-format file.#讀取libsvm格式的數據
svm_load_model() : load a LIBSVM model.
svm_save_model() : save model to a file.
evaluations() : evaluate prediction results.
- Function: svm_train#三種訓練寫法
There are three ways to call svm_train()
>>> model = svm_train(y, x [, 'training_options'])
>>> model = svm_train(prob [, 'training_options'])
>>> model = svm_train(prob, param)
有關參數的設置(read me 文件夾中有詳細說明):
Usage: svm-train [options] training_set_file [model_file]
options:
-s svm_type : set type of SVM (default 0)#選擇哪一種svm
0 -- C-SVC (multi-class classification)
1 -- nu-SVC (multi-class classification)
2 -- one-class SVM
3 -- epsilon-SVR (regression)
4 -- nu-SVR (regression)
-t kernel_type : set type of kernel function (default 2)#是否用kernel trick
0 -- linear: u'*v
1 -- polynomial: (gamma*u'*v + coef0)^degree
2 -- radial basis function: exp(-gamma*|u-v|^2)
3 -- sigmoid: tanh(gamma*u'*v + coef0)
4 -- precomputed kernel (kernel values in training_set_file)
-d degree : set degree in kernel function (default 3)
-g gamma : set gamma in kernel function (default 1/num_features)
-r coef0 : set coef0 in kernel function (default 0)
-c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1)
-n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5)
-p epsilon : set the epsilon in loss function of epsilon-SVR (default 0.1)
-m cachesize : set cache memory size in MB (default 100)
-e epsilon : set tolerance of termination criterion (default 0.001)
-h shrinking : whether to use the shrinking heuristics, 0 or 1 (default 1)
-b probability_estimates : whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0)
-wi weight : set the parameter C of class i to weight*C, for C-SVC (default 1)
-v n: n-fold cross validation mode
-q : quiet mode (no outputs)
三提高預測的准確率:
通過一定的過程,可以提高預測的准確率(在文獻2中有詳細介紹):
a.轉換數據為libsvm可用形式.(可以通過下載的數據了解格式)
b.進行一個簡單的尺度變換
c.利用RBF kernel,利用cross-validation來查找最佳的參數 C 和 r
d.利用最佳參數C 和 r ,來訓練整個數據集
e.測試
再看例子1:
1.進入cmd模式下,輸入如下代碼,將現有數據進行適度變換,生成變換後的數據文件train.1.scale.txt
參數說明:
-l 變換後的下限
-u 變換後的上限
-s 參考上文
2執行以下代碼
import os
os.chdir('C:\libsvm-3.18\windows')#設定路徑
from svmutil import *
y, x = svm_read_problem('train.1.scale.txt')#讀入訓練數據
yt, xt = svm_read_problem('test.1.scale.txt')#訓練測試數據
m = svm_train(y, x )#訓練
svm_predict(yt,xt,m)#測試
精確度為Accuracy = 95.6% (3824/4000) (classification)。
可見我們只是做了簡單的尺度變換後,預測的正確率大大提升了。
3通過選擇最優參數,再次提高預測的准確率:(需要把tools文件下的grid.py拷貝到'C:\libsvm-3.18\windows'下)
import os
os.chdir('C:\libsvm-3.18\windows')#設定路徑
from svmutil import *
from grid import *
rate, param = find_parameters('train.1.scale.txt', '-log2c -3,3,1 -log2g -3,3,1')
y, x = svm_read_problem('train.1.scale.txt')#讀入訓練數據
yt, xt = svm_read_problem('test.1.scale.txt')#訓練測試數據
m = svm_train(y, x ,'-c 2 -g 4')#訓練
p_label,p_acc,p_vals=svm_predict(yt,xt,m)#測試
執行上面的程序,find_parmaters函數,可以找到對應訓練數據較好的參數。後面的log2c,log2g分別設置C和r的搜索范圍。搜索機制是以2為底指數搜索,如 –log2c –3 , 3,1 就是參數C,從2^-3,2^-2,2^-1…搜索到2^3.
搜索到較好參數後,在訓練的時候加上參數的設置。
另外,讀者可以自己試試數據集2,3.
Ⅲ 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鍵對函數進行補全!
Ⅳ 有人知道怎麼把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 測試安裝是否成功。
Ⅳ 如何下載libsvm python
下載libsvm python的方法:
1、訪問「www.csie.ntu.e.tw/~cjlin/libsvm/」網頁,下載zip格式的數據包
2、將文件解壓到回python的site-packages文件夾中就可答以了
更多Python知識,請關註:Python自學網!!
Ⅵ 求在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工具箱
你的和我的情況一模一樣。
我折騰了兩天最後解決了。
因為matlab軟體是在win XP是弄得,後來升級的win7最多支持到vista,所以直接安裝不行。
我在裝的時候,可以安裝,但是打不開,後來發現,只要安裝完之後再matlab的快捷方式下點擊右鍵,在兼容性下面點擊window XP下就可以了。卸載的時候也不能卸,需要找到uninstall.exe這個文件,同樣在兼容性下面點擊window XP下就可以了。如果你連安裝都不能的話,那麼就就在install.exe中點擊右鍵,兼容性下面選擇window XP,然後確定,就一切OK了。
Ⅷ 新手求助,64位win7安裝libsvm工具箱問題
你的和我的情況一模一樣。
我折騰了兩天最後解決了。
因為matlab軟體是在win XP是弄得,後來升級的win7最多支持到vista,所以直接安裝不行。
我在裝的時候,可以安裝,但是打不開,後來發現,只要安裝完之後再matlab的快捷方式下點擊右鍵,在兼容性下面點擊window XP下就可以了。卸載的時候也不能卸,需要找到uninstall.exe這個文件,同樣在兼容性下面點擊window XP下就可以了。如果你連安裝都不能的話,那麼就就在install.exe中點擊右鍵,兼容性下面選擇window XP,然後確定,就一切OK了。