天天看點

SVM工具箱的相關資料記載

QUOTE:

1、工具箱:LS_SVMlab

Classification_LS_SVMlab.m - 多類分類

Regression_LS_SVMlab.m - 函數拟合

2、工具箱:OSU_SVM3.00

Classification_OSU_SVM.m - 多類分類

3、工具箱:stprtool/svm

Classification_stprtool.m - 多類分類

4、工具箱:SVM_SteveGunn

Classification_SVM_SteveGunn.m - 二類分類

Regression_SVM_SteveGunn.m - 函數拟合

QUOTE:

LIBSVM 是台灣大學林智仁(Chih-Jen Lin)博士等開發設計的一個操作簡單、易于使用、快速有效的通用SVM 軟體包,可以解決分類問題(包括C- SVC、n - SVC )、回歸問題(包括e - SVR、n - SVR )以及分布估計(one-class-SVM )等問題,提供了線性、多項式、徑向基和S形函數四種常用的核函數供選擇,可以有效地解決多類問題、交叉驗證選擇參數、對不平衡樣本權重、多類問題的機率估計等。LIBSVM 是一個開源的軟體包,需要者都可以免費的從作者的個人首頁 http://www.csie.ntu.edu.tw/~cjlin/ 處獲得。他不僅提供了LIBSVM的C++語言的算法源代碼,還提供了Python、Java、R、MATLAB、Perl、Ruby、LabVIEW以及C#.net 等各種語言的接口,可以友善的在Windows 或UNIX 平台下使用,也便于科研工作者根據自己的需要進行改進(譬如設計使用符合自己特定問題需要的核函數等)。另外還提供了WINDOWS 平台下的可視化操作工具SVM-toy,并且在進行模型參數選擇時可以繪制出交叉驗證精度的等高線圖。

更加詳細的介紹你可以檢視http://www.blog.sh/user3/warisa/archives/2006/75791.html

或者檢視該工具包作者的個人首頁http://www.csie.ntu.edu.tw/~cjlin/

MySVM 程式作者:stefan ruping

程式介紹: 本程式實作支援向量機。支援向量機是一種基于統計學習理論的機器學習算法,是被認為比人工神經網絡更好的可以針對小樣本進行學習預測的有效算法。目前,該支援向量機程式可以用來進行模式識别和序列預測。

備注:無需編譯,可以自動運作,打包的程式中有C++的源代碼。

詳細資料請檢視http://www.dmresearch.net/html/c ... ithm/1000000928.php

matlab的SVM工具箱詳細資料檢視http://asi.insa-rouen.fr/~arakotom/toolbox/index.html

轉自:http://hi.baidu.com/%CB%AE%BE%A7%D2%BB%D1%A9/blog/item/e936090a0c9e2f32b0351d6e.html

SVM and Kernel Methods Matlab Toolbox:http://asi.insa-rouen.fr/enseignants/~arakotom/toolbox/index.html

轉自:http://i.eol.cn/blog_read.php?topicid=64388

SVM工具箱及其相關介紹

在Dinga's Blog 上發現這篇關于SVM工具箱的介紹的文章,轉載一下,共同學習之!

1、工具箱:LS_SVMlab

Classification_LS_SVMlab.m - 多類分類

Regression_LS_SVMlab.m - 函數拟合#此前在首頁部分顯示#

2、工具箱:OSU_SVM3.00

Classification_OSU_SVM.m - 多類分類

3、工具箱:stprtoolsvm

Classification_stprtool.m - 多類分類

4、工具箱:SVM_SteveGunn

Classification_SVM_SteveGunn.m - 二類分類

Regression_SVM_SteveGunn.m - 函數拟合

可以參考:http://luzhenbo.88uu.com.cn/

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

更加詳細的介紹你可以檢視http://www.blog.sh/user3/warisa/archives/2006/75791.html

或者檢視該工具包作者的個人首頁http://www.csie.ntu.edu.tw/~cjlin/

附錄1:LIBSVM的簡單介紹

1. LIBSVM 軟體包簡介

LIBSVM 是台灣大學林智仁(Chih-Jen Lin)博士等開發設計的一個操作簡單、

易于使用、快速有效的通用SVM 軟體包,可以解決分類問題(包括C- SVC、

n - SVC )、回歸問題(包括e - SVR、n - SVR )以及分布估計(one-class-SVM )

等問題,提供了線性、多項式、徑向基和S形函數四種常用的核函數供選擇,可

以有效地解決多類問題、交叉驗證選擇參數、對不平衡樣本權重、多類問題的概

率估計等。LIBSVM 是一個開源的軟體包,需要者都可以免費的從作者的個人首頁http://www.csie.ntu.edu.tw/~cjlin/ 處獲得。他不僅提供了LIBSVM的C++語言的算法源代碼,還提供了Python、Java、R、MATLAB、Perl、Ruby、LabVIEW

以及C#.net 等各種語言的接口,可以友善的在Windows 或UNIX 平台下使用,

也便于科研工作者根據自己的需要進行改進(譬如設計使用符合自己特定問題需

要的核函數等)。另外還提供了WINDOWS 平台下的可視化操作工具SVM-toy,

并且在進行模型參數選擇時可以繪制出交叉驗證精度的等高線圖。

2. LIBSVM 使用方法簡介

LIBSVM 在給出源代碼的同時還提供了Windows作業系統下的可執行檔案,包括:進行支援向量機訓練的svmtrain.exe;根據已獲得的支援向量機模型對資料集進行預測的svmpredict.exe;以及對訓練資料與測試資料進行簡單縮操作的svmscale.exe。它們都可以直接在DOS 環境中使用。如果下載下傳的包中隻有C++

的源代碼,則也可以自己在VC等軟體上編譯生成可執行檔案。

LIBSVM 使用的一般步驟是:

1) 按照LIBSVM軟體包所要求的格式準備資料集;

2) 對資料進行簡單的縮放操作;

3) 考慮選用RBF 核函數2 K(x,y) e x y = -g - ;

4) 采用交叉驗證選擇最佳參數C與g ;

5) 采用最佳參數C與g 對整個訓練集進行訓練擷取支援向量機模型;

6) 利用擷取的模型進行測試與預測。

一. LIBSVM 使用的資料格式

LIBSVM使用的訓練資料和測試資料檔案格式如下:

: :< 2> …

其中 是訓練資料集的目标值,對于分類,它是辨別某類的整數(支援

多個類);對于回歸,是任意實數。

是以1 開始的整數,表示特征的序号;

為實數,也就是我們常說的特征值或自變量。當特征值為0 時,特征序号與特征值都可以同時省略,即index可以是不連續的自然數。

與第一個特征序号、前一個特征值與後一個特征序号之間用空格隔開。測試資料檔案中的label 隻用于計算準确度或誤差,如果它是未知的,隻需用任意一個數填寫這一欄,也可以空着不填。例如:

+1 1:0.708 2:1 3:1 4:-0.320 5:-0.105 6:-1 8:1.21

二. svmscale 的用法

對資料集進行縮放的目的在于:

1)避免一些特征值範圍過大而另一些特征值範圍過小;

2)避免在訓練時為了計算核函數而計算内積的時候引起數值計算的困難。是以,通常将資料縮放到[ -1,1]或者是[0,1]之間。

用法:svmscale [-l lower] [-u upper] [-y y_lower y_upper]

[-s save_filename] [-r restore_filename] filename

(預設值: lower = -1,upper = 1,沒有對y進行縮放)

其中,

-l:資料下限标記;lower:縮放後資料下限;

-u:資料上限标記;upper:縮放後資料上限;

-y:是否對目标值同時進行縮放;y_lower為下限值,y_upper為上限值;

-s save_filename:表示将縮放的規則儲存為檔案save_filename;

-r restore_filename:表示将縮放規則檔案restore_filename載入後按此縮放;

filename:待縮放的資料檔案(要求滿足前面所述的格式)。

縮放規則檔案可以用文本浏覽器打開,看到其格式為:

lower upper

lval1 uval1

lval2 uval2

其中的lower 與upper 與使用時所設定的lower 與upper 含義相同;index 表

示特征序号;lval 為該特征對應轉換後下限lower 的特征值;uval 為對應于轉換後上限upper 的特征值。

資料集的縮放結果在此情況下通過DOS視窗輸出,當然也可以通過DOS的

檔案重定向符号“>”将結果另存為指定的檔案。

使用執行個體:

1) svmscale –s train3.range train3>train3.scale

表示采用預設值(即對屬性值縮放到[ -1,1]的範圍,對目标值不進行縮放)

對資料集train3 進行縮放操作,其結果縮放規則檔案儲存為train3.range,縮放集的縮放結果儲存為train3.scale。

2) svmscale –r train3.range test3>test3.scale

表示載入縮放規則train3.range 後按照其上下限對應的特征值和上下限值線

性的地對資料集test3 進行縮放,結果儲存為test3.scale。

三. svmtrain 的用法

svmtrain實作對訓練資料集的訓練,獲得SVM模型。

用法: svmtrain [options] training_set_file [model_file]

其中,

options(操作參數):可用的選項即表示的涵義如下所示

-s svm類型:設定SVM 類型,預設值為0,可選類型有:

0 -- C- SVC

1 -- n - SVC

2 -- one-class-SVM

3 -- e - SVR

4 -- n - SVR

-t 核函數類型:設定核函數類型,預設值為2,可選類型有:

0 -- 線性核:u'*v

1 -- 多項式核: (g*u'*v+ coef 0)deg ree

2 -- RBF 核:e( u v 2) g -

3 -- sigmoid 核:tanh(g*u'*v+ coef 0)

-d degree:核函數中的degree設定,預設值為3; -g g :設定核函數中的g ,預設值為1/ k ;

-r coef 0:設定核函數中的coef 0,預設值為0;

-c cost:設定C- SVC、e - SVR、n - SVR中從懲罰系數C,預設值為1;

-n n :設定n - SVC、one-class-SVM 與n - SVR 中參數n ,預設值0.5;

-p e :設定n - SVR的損失函數中的e ,預設值為0.1;

-m cachesize:設定cache記憶體大小,以MB為機關,預設值為40;

-e e :設定終止準則中的可容忍偏差,預設值為0.001;

-h shrinking:是否使用啟發式,可選值為0 或1,預設值為1;

-b 機率估計:是否計算SVC或SVR的機率估計,可選值0 或1,預設0;

-wi weight:對各類樣本的懲罰系數C權重,預設值為1;

-v n:n折交叉驗證模式。

其中-g選項中的k是指輸入資料中的屬性數。操作參數 -v 随機地将資料剖分為n 部分并計算交叉檢驗準确度和均方根誤差。以上這些參數設定可以按照SVM 的類型和核函數所支援的參數進行任意組合,如果設定的參數在函數或SVM 類型中沒有也不會産生影響,程式不會接受該參數;如果應有的參數設定不正确,參數将采用預設值。training_set_file是要進行訓練的資料集;model_file是訓練結束後産生的模型檔案,該參數如果不設定将采用預設的檔案名,也可以設定成自己慣用的檔案名。

使用執行個體:

1)svmtrain train3.scale train3.model

訓練train3.scale,将模型儲存于檔案train3.model,并在dos視窗中輸出如下

結果:

optimization finished, #iter = 1756

nu = 0.464223

obj = -551.002342, rho = -0.337784

nSV = 604, nBSV = 557

Total nSV = 604

其中,#iter為疊代次數,nu 與前面的操作參數-n n 相同,obj為SVM檔案

轉換為的二次規劃求解得到的最小值,rho 為判決函數的常數項b,nSV 為支援

向量個數,nBSV為邊界上的支援向量個數,Total nSV為支援向量總個數。

訓練後的模型儲存為檔案train3.model,用記事本等文本浏覽器打開可以看到其内容如下(其後“%”後内容為筆者所加注釋):

svm_type c_svc % 訓練所采用的svm類型,此處為C- SVC

kernel_type rbf % 訓練采用的核函數類型,此處為RBF核

gamma 0.047619 % 與操作參數設定中的g 含義相同

nr_class 2 % 分類時的類别數,此處為兩分類問題

total_sv 604 % 總共的支援向量個數

rho -0.337784 % 決策函數中的常數項b

label 0 1 % 類别标簽

nr_sv 314 290 % 各類别标簽對應的支援向量個數

SV % 以下為支援向量

1 1:-0.963808 2:0.906788 ... 19:-0.197706 20:-0.928853 21:-1

1 1:-0.885128 2:0.768219 ... 19:-0.452573 20:-0.980591 21:-1

... ... ...

1 1:-0.847359 2:0.485921 ... 19:-0.541457 20:-0.989077 21:-1

% 對于分類問題,上面的支援向量的各列含義與訓練資料集相同;對于回歸問題,略有不同,與訓練資料中的标簽label(即y值)所對應的位置在模型檔案的支援向量中現在存放的是Lagrange 系數a 值,即為下面決策函數公式中的a 值:

* *

1

() ( )( ( ) ( )) ( ) ( , )

( , )

k

i i i i i i

i i sv

i i

i sv

fx a a x x b a a k x x b

ak x x b

=   = - F F + = - +

= + g

四. svmpredict 的用法

svmpredict 是根據訓練獲得的模型,對資料集合進行預測。

用法:svmpredict [options] test_file model_file output_file

options(操作參數):

-b probability_estimates:是否需要進行機率估計預測,可選值為0 或者1,

預設值為0。

model_file 是由svmtrain 産生的模型檔案;test_file 是要進行預測的資料文

件;output_file 是svmpredict 的輸出檔案,表示預測的結果值。svmpredict 沒有

其它的選項。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

MySVM 程式作者:stefan ruping

程式介紹: 本程式實作支援向量機。支援向量機是一種基于統計學習理論的機器學習算法,是被認為比人工神經網絡更好的可以針對小樣本進行學習預測的有效算法。目前,該支援向量機程式可以用來進行模式識别和序列預測。

備注:無需編譯,可以自動運作,打包的程式中有C++的源代碼。

詳細資料請檢視http://www.dmresearch.net/html/c ... ithm/1000000928.php

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SVMlight

作者:Thorsten Joachims <[email protected]>

詳細的介紹檢視http://www.360doc.com/showWeb/0/0/117221.aspx

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

matlab的SVM工具箱詳細資料檢視http://asi.insa-rouen.fr/~arakotom/toolbox/index.html

+++++++本文轉載于 Dinga's Blog http://www.dinga.cn

繼續閱讀