【轉】Windows下使用libsvm中的grid.py和easy.py進行參數調優


 

libsvm中有進行參數調優的工具grid.py和easy.py可以使用,這些工具可以幫助我們選擇更好的參數,減少自己參數選優帶來的煩擾。

所需工具:libsvm、gnuplot

本機環境:Windows7(64 bit) ,Python3.5

1、相關程序的下載和安裝

1.1、下載libsvm,我用的是libsvm-3.18.zip,下載后直接解壓到任意位置,我解壓到C:\libsvm-3.18下。

1.2、下載python,我下的是python-3.5.msi,雙擊該文件安裝到默認位置,我安裝到C:\Users\Administrator\AppData\Local\Programs\Python\Python35下。將該路徑添加到系統環境變量中。

1.3、下載gunplot,我下的是gp460-win32-setup.exe,雙擊該文件安裝到默認位置,我安裝到C:\Program Files\gnuplot下。

 

2、grid.py使用

文件grid.py是對C-SVC的參數c和γ(gamma)做優選的,原理也是網絡遍歷,假設我們要對目錄C:\libsvm-3.18\tool下的樣本文件heart_scale做優選,其具體用法為:

第一步:打開C:\libsvm-3.18下的tools文件夾,找到grid.py文件。用python打開(不能雙擊,而要右鍵選擇“Edit with IDLE” 或者先打開IDLE,再添加進去),修改self.svmtrain_pathname和self.gnuplot_pathname的路徑。

(修改文件時要注意,要修改else下的self.svmtrain_pathname和self.gnuplot_pathname,而不是if not is win32)

第二步:運行cmd,進入dos環境,定位到C:\libsvm-3.18\tools文件夾,這里是放置grid.py的地方。

第三步:輸入以下命令:

python grid.py heart_scale

你就會看到dos窗口飛速亂串的[local]數據,以及一個gnuplot的動態繪圖窗口。大約過10秒鍾,就會停止。Dos窗口中的[local]數據是局部最優值,這個不用管,直接看最后一行:

2048.0 0.0001220703125 84.0741

其意義表示:C=2048.0;γ=0.0001220703125;交叉驗證精度CV Rate=84.0741%,這就是最優結果。

第四步:打開目錄C:\libsvm-3.18\tools,我們可以看到新生成了兩個文件:heart_scale.out和heart_scale.png,第一個文件就是搜索過程中的[local]和最優數據,第二個文件就是gnuplot圖像。

現在,grid.py已經運行完了,你可以把最優參數輸入到svm-train中進行訓練了。

 

3、easy.py使用方法

文件easy.py對樣本文件做了“一條龍服務”,從參數優選,到文件預測。因此,其對grid.py、svm-train、svm-scale和svm-predict都進行了調用(當然還有必須的python和gnuplot)。因此,運行easy.py需要保證這些文件的路徑都要正確。還需要樣本文件和預測文件,這里樣本文件還是用heart_scale,預測文件我們賦值一份然后改名heart_test,下面說說使用方法:

第一步:打開easy.py,修改#example for windows下的幾個路徑:

 

第二步:運行cmd,進行dos環境,定位到防止easy.py的目錄C:\libsvm-3.18\tools

第三步:輸入命令:

python easy.py heart_scale heart_test

就會看到一個gnuplot的動態繪圖窗口。大約20s以后停止,dos窗口顯示為:

Scaling training data… 
Cross validation… 
Best c=2048.0, g=0.0001220703125 CVrate=84.0741 
Training… 
Output model: heart_scale.model 
Scaling testing data… 
Testing… 
Accuracy = 85.1852% (230/270) (classification) 
Output prediction: heart_test.predict

這就是最終預測結果,可以看到第三行就是調用grid.py的結果。在C:\libsvm-3.18\tools下你會看到又多了7個文件,都是以前我們碰到的過程文件,都可以用記事本打開。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM