日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LibSVM学习(六)——easy.py和grid.py的使用(转)

發布時間:2025/3/21 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LibSVM学习(六)——easy.py和grid.py的使用(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們在“LibSVM學習(一)”中,講到libSVM有一個tools文件夾,里面包含有四個python文件,是用來對參數優選的。其中,常用到的是easy.py和grid.py兩個文件。其實,網上也有相應的說明,但很不系統,下面結合本人的經驗,對使用方法做個說明。

?????? 這兩個文件都要用python(可以在http://www.python.org上下載到,需要安裝)和繪圖工具gnuplot(可以在ftp://ftp.gnuplot.info/pub/gnuplot/上下載,不需要安裝)。假設python安裝在d:/libsvm/tools/python26下,而gnuplot解壓到d:/libsvm/tools/gnuplot,libsvm放在了d:/libsvm/program中(這時easy.py和grid.py文件的目錄為d:/libsvm/program/tools)。另外,需要注意的是版本,我的是python 2.6、gnuplot 4.2 和libsvm 2.89,操作系統是WINXP。

?

1. grid.py使用方法

?? 文件grid.py是對C-SVC的參數c和γ做優選的,原理也是網格遍歷,假設我們要對目錄d:/libsvm/program/tools下的樣本文件heart_scale做優選,其具體用法為:

??????

?????? 第一步:打開d:/libsvm/program下的tools文件夾,找到grid.py文件。用python打開(不能雙擊,而要右鍵選擇“Edit with IDLE”),修改svmtrain_exe和gnuplot_exe的路徑。

????????????????????????????? svmtrain_exe = r"D:/libSVM/program/svm-train.exe"

????????????????????????????? gnuplot_exe = r"D:/libSVM/gnuplot/pgnuplot.exe"

?????? (這里面有一個是對非win32的,可以不用改,只改# example for windows下的就可以了)

????? 第二步:運行cmd,進入dos環境,定位到d:/libsvm/program/tools文件夾,這里是放置grid.py的地方。怎么定位可以參看第一節。

????? 第三步:輸入以下命令:

????????????????????????????????????????? d:/libsvm/python26/python grid.py heart_scale

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

????????????????????????????????????????? 2048.0 0.0001220703125 84.0741

?????? 其意義表示:C = 2048.0;γ=0.0001220703125(γ是哪個參數?參看LibSVM學習(三)中svmtrain的參數說明);交叉驗證精度CV Rate = 84.0741%,這就是最優結果。

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

?

?????? 現在,grid.py已經運行完了,你可以把最優參數輸入到svmtrain中進行訓練了。當然了,你在當中某一步很可能出現問題,不過不要緊,我也不是一下子成功的,摸索了半天才成功。下面就需要注意的問題說明一下:

??????? 1)grid.py和svm-train的版本要統一,也就是說你不能用2.6的grid.py去調用2.89的svm-train。

??????? 2)你的目錄中如果有空格,比如d:/program files/ libsvm/...,那么無論是在第一步還是第二步,請把目錄改成d:/progra~1/ libsvm/...

??????? 3) 第三步的命令問題。首先要看你定位到哪個目錄,那么其下的文件就不需要帶路徑,否則就要帶。像我們上面的命令,我當前的目錄是d:/libsvm/program/tools,那么其下的easy.py和heart_scale文件就不需要加路徑,而python.exe是在d:/libsvm/python26/下,因此不在當前目錄下,所以要加路徑。比如,當我首先用dos定位到d:/libsvm/python26時,其命令就可以改成:

?

???????????????????? python? d:/libsvm/program/tools/grid.py? d:/libsvm/program/tools/heart_scale

?

?????? 總起來說,命令為python 目標文件樣本文件,其原則是要讓系統找得到文件。假如系統提示你“不是內部或外部命令”,說明你python的路徑錯誤,而如果是‘not found file’的提示,很可能是其他兩個文件路徑錯誤。

??????? 4)假如,你仍舊出現問題,那么請換一下python或者gnuplot的版本,目前python最新版本是3.1,但是好像會出問題,老一點的版本2.4或2.5的兼容性會更好。

?

?

2. 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的目錄d:/libsvm/program/tools。

?? 第三步:輸入命令:

??????????????????? d:/libsvm/python26/python easy.py heart_scale heat_test

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

?

?????????????????????????????????? Scaling training data...

?????????????????????????????????? Cross validation...

?????????????????????????????????? Best c=2048.0, g=0.0001220703125 CV rate=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的結果。在d:/libsvm/program/tools下你會看到又多了7個文件,都是以前我們碰到的過程文件,都可以用記事本打開。

?

3. 常見的問題解析:

??? 1)

??????????? Scaling training data...
????????????? Cross validation...
????????????? Traceback (most recent call last):
????????????? File "easy.py", line 61, in ?
????????????? c,g,rate = map(float,last_line.split())
????????????? ValueError: need more than 0 values to unpack

?????? [解析] 說明你的grid.py運行出現錯誤,你可以參照第一部分“grid.py使用方法”運行一下就會發現問題。另外,有的說是相對路徑的問題,建議找到easy.py的以下部分:

?????? cmd = "%s -svmtrain %s -gnuplot %s %s" % (grid_py, svmtrain_exe, gnuplot_exe, scaled_file)
改成
????????? cmd = "%s %s -svmtrain %s -gnuplot %s %s" % (python_path, grid_py, svmtrain_exe, gnuplot_exe, scaled_file)

?

???? 2)

??????????? Traceback (most recent call last)
????????????? File "grid.py", line 349, in ?
????????????? main()
????????????? File "grid.py", line 344, in main
????????????? redraw(db)
????????????? File "grid.py", line 132, in redraw
????????????? gnuplot.write("set term windows/n")
????????????? IOError [Errno 22] Invalid argument
?????? [解析] 說明你的gnuplot.exe在調用過程中出現問題,要么是你的路徑不對,要么是你的版本不對,請檢查。

?

3)

??????????? Traceback (most recent call last):
????????????? File "C:/Python24/lib/threading.py", line 442, in __bootstrap
????????????? self.run()
????????????? File "c:/libsvm/tools/gridregression.py", line 212, in run
????????????? self.job_queue.put((cexp,gexp,pexp))
????????????? File "C:/Python24/lib/Queue.py", line 88, in put
????????????? self._put(item)
????????????? File "c:/libsvm/tools/gridregression.py", line 268, in _put
????????????? self.queue.insert(0,item)
????????????? AttributeError: 'collections.deque' object has no attribute 'insert

?????? [解析] 很顯然,你調用的是gridregression.py,其是用來做回歸用的。如果你調用easy.py也出現這種問題按照原作者的說法,這里是因為你的python調用出現錯誤,很可能是版本不對,如果是2.4的版本,請把easy.py中的

????? self.queue.insert(0,item)
改成
????? if sys.hexversion >= 0x020400A1:
????????????? self.queue.appendleft(item)
?????? else
????????????? self.queue.insert(0,item)

總結

以上是生活随笔為你收集整理的LibSVM学习(六)——easy.py和grid.py的使用(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黑人添美女bbb添高潮了 | 亚洲三级久久 | 天天干天天操天天 | 日韩在线高清视频 | 亚洲免费高清 | 美女主播在线观看 | 调教一区二区三区 | 色老头一区二区三区在线观看 | 国产精品1 | 天天做天天爱天天操 | 91久久免费 | 午夜影院黄 | 99re在线精品视频 | 95视频在线 | 奇米狠狠干 | 91免费观看入口 | 五月综合激情 | 日韩一区二区在线播放 | 求个黄色网址 | 青青av在线| 在线中文字幕日韩 | 亚洲精品久久久久国产 | 黑花全肉高h湿play短篇 | www.成人av.com | 娇妻玩4p被三个男人伺候电影 | 色网站在线播放 | 久久久久噜噜噜亚洲熟女综合 | 亚洲色图另类 | 人妻一区在线 | 亚洲精品99999 | 成年人免费看的视频 | а√天堂资源官网在线资源 | 超碰啪啪| 久久精品久久精品久久精品 | 国产精品国产三级国产aⅴ9色 | 天天躁日日摸久久久精品 | 国产精品久久久久久婷婷天堂 | 日韩三级国产精品 | 伊人福利在线 | 日韩精品极品视频免费观看 | 日韩免费一区二区 | av在线资源观看 | 免费三片60分钟 | www.蜜臀av| 日本精品一区在线 | 精品人妻午夜一区二区三区四区 | 女上男下动态图 | 亚洲精品一级片 | 一区二区三区精品久久久 | 国产精品综合久久久久久 | 97香蕉久久夜色精品国产 | 欧美乱做爰xxxⅹ久久久 | 欧美做爰xxxⅹ性欧美大片 | 黄色在线免费观看视频 | 黄色网址在线免费观看 | 人人澡人人爽 | 伊人久久91 | 久久人人爽爽 | 国产伦一区二区三区 | 国产资源在线视频 | 亚洲中文无码av在线 | 少妇一级淫片免费 | 免费a级片在线观看 | 国产精品.xx视频.xxtv | 99热这里只有精品9 日韩综合在线 | 黄色小视频免费在线观看 | 成人精品视频一区二区三区尤物 | 亚洲一本二本 | 久草视频在线资源站 | 欧美一二三区在线观看 | 国产成人无码精品久久久性色 | 婷婷色婷婷开心五月四房播播 | 久久久久久久99 | 国产网站免费在线观看 | 亚洲成年人免费观看 | 亚洲国产在 | 日韩精品一区二区三区在线 | www.国产.com | 伊人黄色片| 亚洲涩涩涩| 日本中文字幕观看 | jizzjizz视频 | 婷婷激情社区 | 国产精品久久久999 www日本高清视频 | 古装做爰无遮挡三级 | 狠狠影院 | 中国毛片在线 | 国产第七页| jizzjizz亚洲 | 一本—道久久a久久精品蜜桃 | 成人看的视频 | 国产毛片欧美毛片久久久 | 久久一区二区三区精品 | 国产精品一区二区小说 | 国产精品四虎 | 中文字幕日韩人妻在线视频 | 日本性xxxxx 免费毛片视频网站 | 91精品视频一区二区三区 | 国产小视频在线观看 |