西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴(lài)的軟件下載站!
西西首頁(yè) 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專(zhuān)題合集

libsvm軟件包

v3.1.4 免費(fèi)版
  • libsvm軟件包v3.1.4 免費(fèi)版
  • 軟件大小:615KB
  • 更新時(shí)間:2013-04-24 17:17
  • 軟件語(yǔ)言:中文
  • 軟件廠(chǎng)商:
  • 軟件類(lèi)別:國(guó)產(chǎn)軟件 / 免費(fèi)軟件 / 行業(yè)軟件
  • 軟件等級(jí):4級(jí)
  • 應(yīng)用平臺(tái):WinAll, WinXP
  • 官方網(wǎng)站:暫無(wú)
  • 應(yīng)用備案:
好評(píng):50%
壞評(píng):50%

軟件介紹

LIBSVM是臺(tái)灣大學(xué)林智仁(Lin Chih-Jen)副教授等開(kāi)發(fā)設(shè)計(jì)的一個(gè)簡(jiǎn)單、易于使用和快速有效的SVM模式識(shí)別與回歸的軟件包

使用方法:

1.首先從主頁(yè)上下載libsvm、Python2.5.2和gnuplot 三個(gè)軟件。

http://www.csie.ntu.edu.tw/~cjlin/

2.準(zhǔn)備好數(shù)據(jù),首先要把數(shù)據(jù)轉(zhuǎn)換成Libsvm軟件包要求的數(shù)據(jù)格式為:

label index1:value1 index2:value2 ...

其中對(duì)于分類(lèi)來(lái)說(shuō)label為類(lèi)標(biāo)識(shí),指定數(shù)據(jù)的種類(lèi) ;對(duì)于回歸來(lái)說(shuō)label為目標(biāo)值。(我主要要用到回歸)

Index是從1開(kāi)始的自然數(shù),value是每一維的特征值。

該過(guò)程可以自己使用excel或者編寫(xiě)程序來(lái)完成,也可以使用網(wǎng)絡(luò)上的FormatDataLibsvm.xls來(lái)完成。

FormatDataLibsvm.xls使用說(shuō)明:

先將數(shù)據(jù)按照下列格式存放(注意label放最后面):

value1 value2 ?? label

value1 value2 ?? label

??

然后將以上數(shù)據(jù)粘貼到FormatDataLibsvm.xls中的最左上角單元格,接著工具->宏執(zhí)行行FormatDataToLibsvm宏。就可以得到libsvm要求的數(shù)據(jù)格式。將該數(shù)據(jù)存放到文本文件中進(jìn)行下一步的處理。

3.對(duì)數(shù)據(jù)進(jìn)行歸一化。

該過(guò)程要用到libsvm軟件包中的svm-scale.exe

Svm-scale用法:

用法:svmscale [-l lower] [-u upper] [-y y_lower y_upper] [-s save_filename] [-r restore_filename] filename (缺省值: lower = -1,upper = 1,沒(méi)有對(duì)y進(jìn)行縮放) 其中, -l:數(shù)據(jù)下限標(biāo)記;lower:縮放后數(shù)據(jù)下限; -u:數(shù)據(jù)上限標(biāo)記;upper:縮放后數(shù)據(jù)上限; -y:是否對(duì)目標(biāo)值同時(shí)進(jìn)行縮放;y_lower為下限值,y_upper為上限值;(回歸需要對(duì)目標(biāo)進(jìn)行縮放,因此該參數(shù)可以設(shè)定為 –y -1 1 ) -s save_filename:表示將縮放的規(guī)則保存為文件save_filename; -r restore_filename:表示將縮放規(guī)則文件restore_filename載入后按此縮放; filename:待縮放的數(shù)據(jù)文件(要求滿(mǎn)足前面所述的格式)。

縮放規(guī)則文件可以用文本瀏覽器打開(kāi),看到其格式為:

y

lower upper min max x

lower upper

index1 min1 max1

index2 min2 max2

?? 其中的lower 與upper 與使用時(shí)所設(shè)置的lower 與upper 含義相同;index 表 示特征序號(hào);min 轉(zhuǎn)換前該特征的最小值;max 轉(zhuǎn)換前該特征的最大值。數(shù)據(jù)集的縮放結(jié)果在此情況下通過(guò)DOS窗口輸出,當(dāng)然也可以通過(guò)DOS的文件重定向符號(hào)“>”將結(jié)果另存為指定的文件。該文 件中的參數(shù)可用于最后面對(duì)目標(biāo)值的反歸一化。反歸一化的公式為:

(Value-lower)*(max-min)/(upper - lower)+lower

其中value為歸一化后的值,其他參數(shù)與前面介紹的相同。

建議將訓(xùn)練數(shù)據(jù)集與測(cè)試數(shù)據(jù)集放在同一個(gè)文本文件中一起歸一化,然后再將歸一化結(jié)果分成訓(xùn)練集和測(cè)試集。

4.訓(xùn)練數(shù)據(jù),生成模型。

用法: svmtrain [options] training_set_file [model_file]

其中, options(操作參數(shù)):可用的選項(xiàng)即表示的涵義如下所示 -s svm類(lèi)型:設(shè)置SVM 類(lèi)型,默認(rèn)值為0,可選類(lèi)型有(對(duì)于回歸只能選3或4):

0 -- C- SVC 1 -- n - SVC 2 -- one-class-SVM 3 -- e - SVR 4 -- n - SVR -t 核函數(shù)類(lèi)型:設(shè)置核函數(shù)類(lèi)型,默認(rèn)值為2,可選類(lèi)型有: 0 -- 線(xiàn)性核:u'*v 1 -- 多項(xiàng)式核: (g*u'*v+ coef 0)deg ree 2 -- RBF 核:e( u v 2) g - 3 -- sigmoid 核:tanh(g*u'*v+ coef 0) -d degree:核函數(shù)中的degree設(shè)置,默認(rèn)值為3;

-g g :設(shè)置核函數(shù)中的g ,默認(rèn)值為1/ k ; -r coef 0:設(shè)置核函數(shù)中的coef 0,默認(rèn)值為0; -c cost:設(shè)置C- SVC、e - SVR、n - SVR中從懲罰系數(shù)C,默認(rèn)值為1; -n n :設(shè)置n - SVC、one-class-SVM 與n - SVR 中參數(shù)n ,默認(rèn)值0.5; -p e :設(shè)置n - SVR的損失函數(shù)中的e ,默認(rèn)值為0.1; -m cachesize:設(shè)置cache內(nèi)存大小,以MB為單位,默認(rèn)值為40; -e e :設(shè)置終止準(zhǔn)則中的可容忍偏差,默認(rèn)值為0.001; -h shrinking:是否使用啟發(fā)式,可選值為0 或1,默認(rèn)值為1; -b 概率估計(jì):是否計(jì)算SVC或SVR的概率估計(jì),可選值0 或1,默認(rèn)0; -wi weight:對(duì)各類(lèi)樣本的懲罰系數(shù)C加權(quán),默認(rèn)值為1; -v n:n折交叉驗(yàn)證模式。

其中-g選項(xiàng)中的k是指輸入數(shù)據(jù)中的屬性數(shù)。操作參數(shù) -v 隨機(jī)地將數(shù)據(jù)剖分為n 部分并計(jì)算交叉檢驗(yàn)準(zhǔn)確度和均方根誤差。以上這些參數(shù)設(shè)置可以按照SVM 的類(lèi)型和核函數(shù)所支持的參數(shù)進(jìn)行任意組合,如果設(shè)置的參數(shù)在函數(shù)或SVM 類(lèi)型中沒(méi)有也不會(huì)產(chǎn)生影響,程序不會(huì)接受該參數(shù);如果應(yīng)有的參數(shù)設(shè)置不正確,參數(shù)將采用默認(rèn)值。training_set_file是要進(jìn)行訓(xùn)練的數(shù)據(jù) 集;model_file是訓(xùn)練結(jié)束后產(chǎn)生的模型文件,該參數(shù)如果不設(shè)置將采用默認(rèn)的文件名,也可以設(shè)置成自己慣用的文件名。

本實(shí)驗(yàn)中的參數(shù)-s取3,-t取2(默認(rèn))還需確定的參數(shù)是-c,-g,-p

另, 實(shí)驗(yàn)中所需調(diào)整的重要參數(shù)是-c 和 –g,-c和-g的調(diào)整除了自己根據(jù)經(jīng)驗(yàn)試之外,還可以使用gridregression.py對(duì)這兩個(gè)參數(shù)進(jìn)行優(yōu)化。(需要補(bǔ)充)

該優(yōu)化過(guò)程需要用到Python(2.5),Gnuplot(4.2),gridregression.py(該文件需要修改路徑)。

然后在命令行下面運(yùn)行:

python.exe gridregression.py -log2c -10,10,1 -log2g -10,10,1 -log2p -10,10,1 -s 3 –t 2 -v 5 -svmtrain E:\libsvm\libsvm-2.86\windows\svm-train.exe -gnuplot E:\libsvm\libsvm-2.86\gnuplot\bin\pgnuplot.exe E:\libsvm\libsvm-2.86\windows\train.txt > gridregression_feature.parameter

以上三個(gè)路徑根據(jù)實(shí)際安裝情況進(jìn)行修改。

-log2c是給出參數(shù)c的范圍和步長(zhǎng) -log2g是給出參數(shù)g的范圍和步長(zhǎng) -log2p是給出參數(shù)p的范圍和步長(zhǎng)上面三個(gè)參數(shù)可以用默認(rèn)范圍和步長(zhǎng) -s選擇SVM類(lèi)型,也是只能選3或者4 -t是選擇核函數(shù) -v 10 將訓(xùn)練數(shù)據(jù)分成10份做交叉驗(yàn)證。默認(rèn)為5

為了方便將gridregression.py是存放在python.exe安裝目錄下

trian.txt為訓(xùn)練數(shù)據(jù),參數(shù)存放在gridregression_feature.parameter中,可以自己命名。

搜索結(jié)束后可以在gridregression_feature.parameter中最后一行看到最優(yōu)參數(shù)。

其中,最后一行的第一個(gè)參數(shù)即為-c,第二個(gè)為-g,第三個(gè)為-p,最后一個(gè)參數(shù)為均方誤差。前三個(gè)參數(shù)可以直接用于模型的訓(xùn)練。

然后,根據(jù)搜索得到的參數(shù),重新訓(xùn)練,得到模型。

5.測(cè)試

用法:svmpredict [options] test_file model_file output_file options(操作參數(shù)): -b probability_estimates:是否需要進(jìn)行概率估計(jì)預(yù)測(cè),可選值為0 或者1,默認(rèn)值為0。 model_file 是由svmtrain 產(chǎn)生的模型文件;

test_file 是要進(jìn)行預(yù)測(cè)的數(shù)據(jù)文件;

output_file 是svmpredict 的輸出文件,表示預(yù)測(cè)的結(jié)果值。

輸出結(jié)果包括均方誤差(Mean squared error)和相關(guān)系數(shù)(Squared correlation coefficient)。

用LIBSVM做回歸和預(yù)測(cè)的步驟(請(qǐng)指點(diǎn))

用LIBSVM做回歸和預(yù)測(cè)的步驟(請(qǐng)指點(diǎn))

首先說(shuō)明,我學(xué)習(xí)SVM才幾天,對(duì)基本理論還不了解,只是想利用這一工具做自己想做的事情。摸索著做了幾個(gè)實(shí)驗(yàn),試著把過(guò)程寫(xiě)下來(lái),請(qǐng)大家指點(diǎn)。

<1> 下載Libsvm、Python和Gnuplot。我用的版本分別是:Libsvm(2.8.1),Python(2.4),Gnuplot(3.7.3)。注意:Gnuplot一定要用3.7.3版,3.7.1版的有bug.

<2> 修改訓(xùn)練和測(cè)試數(shù)據(jù)的格式(可以自己用perl編個(gè)小程序):

目標(biāo)值 第一維特征編號(hào):第一維特征值 第二維特征編號(hào):第二維特征值 …



例如:

2.3 1:5.6 2:3.2

表示訓(xùn)練用的特征有兩維,第一維是5.6,第二維是3.2,目標(biāo)值是2.3

注意:訓(xùn)練和測(cè)試數(shù)據(jù)的格式必須相同,都如上所示。測(cè)試數(shù)據(jù)中的目標(biāo)值是為了計(jì)算誤差用

<3> 分別使用Libsvm中的Windows版本的工具svmscale.exe進(jìn)行訓(xùn)練和測(cè)試數(shù)據(jù)的歸一化,svmtrain.exe進(jìn)行模型訓(xùn)練,svmpredict.exe進(jìn)行預(yù)測(cè)

(1)svmscale.exe的用法:svmscale.exe feature.txt feature.scaled

默認(rèn)的歸一化范圍是[-1,1],可以用參數(shù)-l和-u分別調(diào)整上界和下屆,feature.txt是輸入特征文件名

輸出的歸一化特征名為feature.scaled

(2)svmtrtrain.exe訓(xùn)練模型

我習(xí)慣寫(xiě)個(gè)批處理小程序,處理起來(lái)比較方便。例如svm_train.bat中訓(xùn)練語(yǔ)句為:

svmtrain.exe -s 3 -p 0.0001 -t 2 -g 32 -c 0.53125 -n 0.99 feature.scaled

訓(xùn)練得到的模型為feature.scaled.model

具體的參數(shù)含義可以參考幫助文檔。這里-s是選擇SVM的類(lèi)型。對(duì)于回歸來(lái)說(shuō),只能選3或者 4,3表示epsilon-support vector regression, 4表示nu-support vector regression。-t是選擇核函數(shù),通常選用RBF核函數(shù),原因在“A Practical Guide support vector classification”中已經(jīng)簡(jiǎn)單介紹過(guò)了。-p盡量選個(gè)比較小的數(shù)字。需要仔細(xì)調(diào)整的重要參數(shù)是-c和-g。除非用 gridregression.py來(lái)搜索最優(yōu)參數(shù),否則只能自己慢慢試了。

用gridregression.py搜索最優(yōu)參數(shù)的方法如下:

python.exe gridregression.py -svmtrain H:\SVM\libsvm-2.81\windows\svmtrain.exe -gnuplot C:\gp373w32\pgnuplot.exe -log2c -10,10,1 -log2g -10,10,1 -log2p -10,10,1 -v 10 -s 3 -t 2 H:\SVM\libsvm-2.81\windows\feature.scaled > gridregression_feature.parameter

注意:-svmtrain是給出svmtrain.exe所在路徑,一定要是完整的全路徑

-gnuplot是給出pgnuplot.exe所在路徑。這里要用pgnuplot.exe這種命令行形式的,不要用wgnupl32.exe,這個(gè)是圖形界面的。

-log2c是給出參數(shù)c的范圍和步長(zhǎng)

-log2g是給出參數(shù)g的范圍和步長(zhǎng)

-log2p是給出參數(shù)p的范圍和步長(zhǎng)

上面三個(gè)參數(shù)可以用默認(rèn)范圍和步長(zhǎng)

-s選擇SVM類(lèi)型,也是只能選3或者4

-t是選擇核函數(shù)

-v 10 將訓(xùn)練數(shù)據(jù)分成10份做交叉驗(yàn)證。默認(rèn)為5

最后給出歸一化后訓(xùn)練數(shù)據(jù)的全路徑

搜索最優(yōu)參數(shù)的過(guò)程寫(xiě)入文件gridregression_feature.parameter(注意別少了這個(gè)>符號(hào)�。�

根據(jù)搜索到的最優(yōu)參數(shù)修改feature.scaled.model中的參數(shù)

(3)用svmpredict.exe進(jìn)行預(yù)測(cè)

svmpredict.exe feature_test.scaled feature.scaled.model feature_test.predicted

其中feature_test.scaled是歸一化后的測(cè)試特征文件名,feature.scaled.model是訓(xùn)練好的模型,SVM預(yù)測(cè)的值在feature_test.predicted中

核函數(shù)方法簡(jiǎn)介

(1)核函數(shù)發(fā)展歷史

早在1964年Aizermann等在勢(shì)函數(shù)方法的研究中就將該技術(shù)引入到機(jī)器學(xué)習(xí)領(lǐng)域,但是直到1992年Vapnik等利用該技術(shù)成功地將線(xiàn)性 SVMs推廣到非線(xiàn)性SVMs時(shí)其潛力才得以充分挖掘。而核函數(shù)的理論則更為古老,Mercer定理可以追溯到1909年,再生核希爾伯特空間 (ReproducingKernel Hilbert Space, RKHS)研究是在20世紀(jì)40年代開(kāi)始的。

(2)核函數(shù)方法原理

根據(jù)模式識(shí)別理論,低維空間線(xiàn)性不可分的模式通過(guò)非線(xiàn)性映射到高維特征空間則可能實(shí)現(xiàn)線(xiàn)性可分,但是如果直接采用這種技術(shù)在高維空間進(jìn)行分類(lèi)或回歸,則存 在確定非線(xiàn)性映射函數(shù)的形式和參數(shù)、特征空間維數(shù)等問(wèn)題,而最大的障礙則是在高維特征空間運(yùn)算時(shí)存在的“維數(shù)災(zāi)難”。采用核函數(shù)技術(shù)可以有效地解決這樣問(wèn) 題。

設(shè)x,z∈X,X屬于R(n)空間,非線(xiàn)性函數(shù)Φ實(shí)現(xiàn)輸入間X到特征空間F的映射,其中F屬于R(m),n<<m。根據(jù)核函數(shù)技術(shù)有:

K(x,z) =<Φ(x),Φ(z) > (1)

其中:<, >為內(nèi)積,K(x,z)為核函數(shù)。從式(1)可以看出,核函數(shù)將m維高維空間的內(nèi)積運(yùn)算轉(zhuǎn)化為n維低維輸入空間的核函數(shù)計(jì)算,從而巧妙地解決了在高 維特征空間中計(jì)算的“維數(shù)災(zāi)難”等問(wèn)題,從而為在高維特征空間解決復(fù)雜的分類(lèi)或回歸問(wèn)題奠定了理論基礎(chǔ)。

(3)核函數(shù)特點(diǎn)

核函數(shù)方法的廣泛應(yīng)用,與其特點(diǎn)是分不開(kāi)的:

1)核函數(shù)的引入避免了“維數(shù)災(zāi)難”,大大減小了計(jì)算量。而輸入空間的維數(shù)n對(duì)核函數(shù)矩陣無(wú)影響,因此,核函數(shù)方法可以有效處理高維輸入。

2)無(wú)需知道非線(xiàn)性變換函數(shù)Φ的形式和參數(shù).

3)核函數(shù)的形式和參數(shù)的變化會(huì)隱式地改變從輸入空間到特征空間的映射,進(jìn)而對(duì)特征空間的性質(zhì)產(chǎn)生影響,最終改變各種核函數(shù)方法的性能。

4)核函數(shù)方法可以和不同的算法相結(jié)合,形成多種不同的基于核函數(shù)技術(shù)的方法,且這兩部分的設(shè)計(jì)可以單獨(dú)進(jìn)行,并可以為不同的應(yīng)用選擇不同的核函數(shù)和算法。

(4)常見(jiàn)核函數(shù)

核函數(shù)的確定并不困難,滿(mǎn)足Mercer定理的函數(shù)都可以作為核函數(shù)。常用的核函數(shù)可分為兩類(lèi),即內(nèi)積核函數(shù)和平移不變核函數(shù),如:

 1)高斯核函數(shù)K(x,xi) =exp(-||x-xi||2/2σ2;

2)多項(xiàng)式核函數(shù)K(x,xi)=(x·xi+1)^d, d=1,2,…,N;

3)感知器核函數(shù)K(x,xi) =tanh(βxi+b);

4)樣條核函數(shù)K(x,xi) = B2n+1(x-xi)。

(5)核函數(shù)方法實(shí)施步驟

核函數(shù)方法是一種模塊化(Modularity)方法,它可分為核函數(shù)設(shè)計(jì)和算法設(shè)計(jì)兩個(gè)部分,具體為:

1)收集和整理樣本,并進(jìn)行標(biāo)準(zhǔn)化;

2)選擇或構(gòu)造核函數(shù);

3)用核函數(shù)將樣本變換成為核函數(shù)矩陣,這一步相當(dāng)于將輸入數(shù)據(jù)通過(guò)非線(xiàn)性函數(shù)映射到高維

特征空間;

4)在特征空間對(duì)核函數(shù)矩陣實(shí)施各種線(xiàn)性算法;

5)得到輸入空間中的非線(xiàn)性模型。

顯然,將樣本數(shù)據(jù)核化成核函數(shù)矩陣是核函數(shù)方法中的關(guān)鍵。注意到核函數(shù)矩陣是l×l的對(duì)稱(chēng)矩陣,其中l(wèi)為樣本數(shù)。

(6)核函數(shù)在模式識(shí)別中的應(yīng)用

1)新方法。主要用在基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化(Structural Risk Minimization,SRM)的SVM中。

2)傳統(tǒng)方法改造。如核主元分析(kernel PCA)、核主元回歸(kernel PCR)、核部分最小二乘法(kernel PLS)、核Fisher判別分析(Kernel Fisher Discriminator, KFD)、核獨(dú)立主元分析(Kernel Independent Component Analysis,KICA)等,這些方法在模式識(shí)別等不同領(lǐng)域的應(yīng)用中都表現(xiàn)了很好的性能。
軟件標(biāo)簽: 軟件

其他版本下載

最新評(píng)論查看所有(2)條評(píng)論 >

第 2 樓 山西太原金玉網(wǎng)吧(山西大學(xué)商務(wù)學(xué)院) 網(wǎng)友 客人 2014/6/11 19:54:13
謝謝分享,很需要

支持( 0 ) 蓋樓(回復(fù))

第 1 樓 福建泉州聯(lián)通 網(wǎng)友 客人 2013/11/19 17:08:47
怎么使用啊

支持( 0 ) 蓋樓(回復(fù))

發(fā)表評(píng)論

昵稱(chēng):
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(2)條評(píng)論 > 字?jǐn)?shù): 0/500

TOP
軟件下載