windows下LIBSVM使用方法及例子

2021-05-25 01:20:53 字數 3982 閱讀 9126

這樣,可以方便的從命令列的任何位置呼叫gnuplot和libsvm的可執行程式,如下呼叫svm-train.exe:

出現svm-train程式中的幫助提示,說明path配置成功。

至此,libsvm執行的環境配置完成。下面將通過例項講解如何使用libsvm進行分類。

2. 使用libsvm進行分類**

我們所使用的資料為uci的iris資料集,將其類別標識換為1、2、3。然後,取3/5作為訓練樣本,2/5作為測試樣本。使用論壇中「將uci資料轉變為libsvm使用資料格式的程式」一文將其轉換為libsvm所用格式,如下:

訓練檔案tra_iris.txt

1 1:5.4 2:3.4 3:1.7 4:0.2

1 1:5.1 2:3.7 3:1.5 4:0.4

1 1:4.6 2:3.6 3:1 4:0.2

1 1:5.1 2:3.3 3:1.7 4:0.5

1 1:4.8 2:3.4 3:1.9 4:0.2

……2 1:5.9 2:3.2 3:4.8 4:1.8

2 1:6.1 2:2.8 3:4 4:1.3

2 1:6.3 2:2.5 3:4.9 4:1.5

2 1:6.1 2:2.8 3:4.7 4:1.2

2 1:6.4 2:2.9 3:4.3 4:1.3

……3 1:6.9 2:3.2 3:5.7 4:2.3

3 1:5.6 2:2.8 3:4.9 4:2

3 1:7.7 2:2.8 3:6.7 4:2

3 1:6.3 2:2.7 3:4.9 4:1.8

3 1:6.7 2:3.3 3:5.7 4:2.1

3 1:7.2 2:3.2 3:6 4:1.8

……測試檔案tes_iris.txt

1 1:5.1 2:3.5 3:1.4 4:0.2

1 1:4.9 2:3 3:1.4 4:0.2

1 1:4.7 2:3.2 3:1.3 4:0.2

1 1:4.6 2:3.1 3:1.5 4:0.2

1 1:5 2:3.6 3:1.4 4:0.2

1 1:5.4 2:3.9 3:1.7 4:0.4

……2 1:7 2:3.2 3:4.7 4:1.4

2 1:6.4 2:3.2 3:4.5 4:1.5

2 1:6.9 2:3.1 3:4.9 4:1.5

2 1:5.5 2:2.3 3:4 4:1.3

2 1:6.5 2:2.8 3:4.6 4:1.5

……3 1:6.3 2:3.3 3:6 4:2.5

3 1:5.8 2:2.7 3:5.1 4:1.9

3 1:7.1 2:3 3:5.9 4:2.1

3 1:6.3 2:2.9 3:5.6 4:1.8

3 1:6.5 2:3 3:5.8 4:2.2

……libsvm的引數選擇一直是令人頭痛的問題。不過,對於初學者,如果資料不是很大,在libsvm的tools檔案中為大家提供了easy.py。它可以自動完成從歸一化到引數選擇的一切所需操作。

使用方法為:easy.py training_file [testing_file]

另外有其他引數選擇工具,可以參考tools中的readme說明。下面,我們先使用easy.py進行分類實驗。

(1)使用libsvm進行多分類——利用easy.py工具

在使用前,要確保上面環境變數已經配置。然後將tra_iris.txt、tes_iris.txt拷貝到tools資料夾,以防止寫長路徑名。同時,因為gnuplot的安裝路徑人人都不相同,所以,需要在easy.py中做相應修改,如下將

code:

else:

# example for windows

svmscale_exe = r"../windows/svm-scale.exe"

svmtrain_exe = r"../windows/svm-train.exe"

svmpredict_exe = r"../windows/svm-predict.exe"

gnuplot_exe = r"d:/greensoft/gnuplot/bin/pgnuplot.exe"

grid_py = r"./grid.py"中d:/greensoft/gnuplot/bin/pgnuplot.exe,改為你的pgnuplot.exe所在位置。

【syr

補充:在「交叉驗證尋找最優引數」之前,需要在grid.py中:

code:

else:

# example for windows

svmtrain_exe = r"../windows/svm-train.exe"

gnuplot_exe = r"g:/program files/gnuplot/bin/pgnuplot.exe"其中的"g:/program files/gnuplot/bin/pgnuplot.exe"改為你的pgnuplot.exe所在的路徑。】

接著,「執行」中輸入cmd開啟命令列,轉到/libsvm-2.9/tools所在目錄,然後,輸入命令

code:

easy.py svmtra_iris.txt svmtes_iris.txt執行,程式會自動呼叫訓練、交叉驗證、**將結果儲存到同目錄的檔案中。運**況如下:

程式自動尋參情況圖示如下:

程式執行的結果在svmtes_iris.txt.predict檔案中,規範化結果在svmtra_iris.txt.scale.out中。從運**況可看出,其**精度為accuracy = 96.6667% (58/60)。

(2)對應上實驗,手動使用libsvm進行多分類的方法

下面方法是通過分析easy.py所得,均在「執行」cmd命令列執行。

規範化訓練樣本

code:

svm-scale -s svmtra_iris.txt.range svmtra_iris.txt > svmtra_iris.txt.scale交叉驗證尋找最優引數

code:

grid.py -svmtrain svm-train -gnuplot gnuplot svmtra_iris.txt.scale利用尋找的引數訓練模型

code:

svm-train -c 8.0 -g 0.03125 svmtra_iris.txt.scale svmtra_iris.txt.model規範化測試樣本

code:

svm-scale -r svmtra_iris.txt.range svmtes_iris.txt > svmtes_iris.txt.scale使用模型進行分類**

code:

svm-predict svmtes_iris.txt.scale svmtra_iris.txt.model svmtes_iris.txt.predictsvm-train、svm-scale、svm-predict等名字為windows資料夾中exe檔案的名字。

至此,使用libsvm進行分類的完整過程分析介紹,歡迎討論。

Windows下安裝OpenSSL及其使用

1.perl 安裝後重啟系統。2latest openssl 並解壓到 c openssl 0.9.8k。參考openssl 目錄下的 install.win32 說明進行安裝 1 進入解壓目錄。cd c openssl 0.9.8k 2 執行configure。perl configure vc ...

Windows下安裝OpenSSL及其使用

方法一 windows binaries can be found here you can do this conversion with the openssl library 方法二 手動編譯 source 參考openssl目錄下的install.win32說明進行安裝 1 進入解壓目錄。c...

MATLAB下使用libsvm (三)

編寫程式的基本步驟 1 將資料中心化,是每一組特徵中心化,而不是每個樣本的資料中心化哦。原因就是之後要進行pca降維,這個過程之前如果不將資料中心化,那麼之後測試資料集對映出來的點就不對啦 具體看圖啦 至於是否要歸一化,這個並不是必要的步驟,所以看心情咯 2 pca降維,這個最好是以矩陣短的那一邊進...