1. 把LibSVM包解壓到相應(yīng)的目錄(因為我只需要里面windows文件夾中的東東,我們也可以只把windows文件夾拷到相應(yīng)的目錄),比如D:\libsvm。
2. 在電腦“開始”的“運行”中輸入cmd,進入DOS環(huán)境。定位到d:\ libsvm下,具體命令如下:
d: (回車)
cd \libsvm\windows (回車)
(上面第一行是先定位到盤符d,第二行cd 是定位到相應(yīng)盤符下的目錄)
3. 進行l(wèi)ibsvm訓(xùn)練,輸入命令:(這里要注意文件的名字,2.89以前版本都是svmtrain.exe)
svm-train heart_scale train.model
heart_scale ——是目錄下的已經(jīng)存在的樣本文件,要換成自己的文件,只需改成自己的文件名就可以了
train.model ——是創(chuàng)建的結(jié)果文件,保存了訓(xùn)練后的結(jié)果
可以看到結(jié)果:
*
optimization finished, #iter = 162
nu = 0.431029
obj = -100.877288, rho = 0.424462
nSV = 132, nBSV = 107
Total nSV = 132
其中,#iter為迭代次數(shù),nu 是你選擇的核函數(shù)類型的參數(shù),obj為SVM文件轉(zhuǎn)換為的二次規(guī)劃求解得到的最小值,rho為判決函數(shù)的偏置項b,nSV 為標準支持向量個數(shù)(0<a[i]<c),nBSV為邊界上的支持向量個數(shù)(a[i]=c),Total nSV為支持向量總個數(shù)(對于兩類來說,因為只有一個分類模型Total nSV = nSV,但是對于多類,這個是各個分類模型的nSV之和)。
在目錄下,還可以看到產(chǎn)生了一個train.model文件,可以用記事本打開,記錄了訓(xùn)練后的結(jié)果。
svm_type c_svc //所選擇的svm類型,默認為c_svc
kernel_type rbf //訓(xùn)練采用的核函數(shù)類型,此處為RBF核
gamma 0.0769231 //RBF核的參數(shù)γ
nr_class 2 //類別數(shù),此處為兩分類問題
total_sv 132 //支持向量總個數(shù)
rho 0.424462 //判決函數(shù)的偏置項b
label 1 -1 //原始文件中的類別標識
nr_sv 64 68 //每個類的支持向量機的個數(shù)
SV //以下為各個類的權(quán)系數(shù)及相應(yīng)的支持向量
1 1:0.166667 2:1 3:-0.333333 … 10:-0.903226 11:-1 12:-1 13:1
0.5104832128985164 1:0.125 2:1 3:0.333333 … 10:-0.806452 12:-0.333333 13:0.5
………..
-1 1:-0.375 2:1 3:-0.333333…. 10:-1 11:-1 12:-1 13:1
-1 1:0.166667 2:1 3:1 …. 10:-0.870968 12:-1 13:0.5
到現(xiàn)在,第一次體驗libsvm到這就基本結(jié)束了,其他的兩個(svm-predict、svm-scale)的使用過程類似。怎么樣,挺爽的吧。對于個別參數(shù)你還不理解,沒關(guān)系,下面我們會具體講到。