libsvm与python的使用
由于課程和課題的原因,這兩天試用了一下國立臺灣大學Chih-Chung Chang和Chih-Jen Lin編寫的libsvm函數庫,發現的確是一款寫得很不錯的軟件,而且上手也比較容易,用了一個晚上的時間基本搞定了libsvm的基本用法以及它和python的接口,以下的內容均基于win32系統,尚未在Linux下嘗試過。
首先我們需要下載libsvm,最新版是11月17日剛推出的libsvm2.83,可以在libsvm的主頁http://www.csie.ntu.edu.tw/~cjlin/libsvm/上下載得到,建議同時下載一個libsvm的初學者guide,寫得很不錯,淺顯易懂,適合初學者使用,基本的使用只需要libsvm這一個軟件即可,但如果需要使用它自帶的python腳本的話,還需要安裝python,最新版是2.5,可以在python的主頁http://www.python.org上下載。另外,libsvm自帶的兩個腳本grid.py和easy.py中均用到了繪圖工具gnuplot,因此還需要下載一個gnuplot軟件,下載地址:ftp://ftp.gnuplot.info/pub/gnuplot/,注意要下載win32版本的,比如win32的4.0版本對應的文件應為gp400win32.zip。
下載完成后,接下來就是安裝。其中只有python2.5需要安裝(一般默認安裝到c:\python25下),將libsvm解壓到c:\libsvm下,將gnuplot解壓到c:\gnuplot下。將c:\python25,c:\libsvm\windows,c:\gnuplot\bin三個文件夾添加到系統路徑里面,方便日后使用。
安裝完畢后,進入c:\libsvm\tools目錄下,用文本編輯器(記事本,edit都可以)修改grid.py和easy.py兩個文件,找到其中關于gnuplot路徑的那項,根據實際路徑進行修改,并保存。然后我們可以下載guide文章里提到的那三個數據集作為實驗數據集,也將其放在tools目錄下,在libsvm\tools下執行以下命令檢驗效果:
??? python easy.py train.1 test.1
如果彈出了gnuplot的窗口并可以看到動態的繪制圖形的過程,那么恭喜你,實驗成功!最后輸出的結果應該和guide文章里提到的結果類似(當然c和g的值有可能并不和文章里的相同,但最后在測試集上的錯誤率應該相差不大)。執行的過程中可能防病毒軟件會彈出提示說rootshell之類的警告,不必理會。
接下來我們研究一下libsvm和python的接口的問題,這個問題我自己也困擾了很久。首先,按照libsvm\python目錄下的readme文件所說,在win32環境下,我們要編譯得到svmc.dll這個文件(細心的人會發現,libsvm已經在\libsvm\windows\python目錄下自帶了這個文件,但它可能是為其它的python版本編譯的,為保險起見,我們嘗試重新編譯它),在libsvm目錄下鍵入如下命令(以vs.net2003為例,其它版本的c++編譯器可能需要略微修改):
??? vcvars32
這個文件在C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\下,請確保這個路徑在你的系統路徑里面。此命令設置了VC++的環境變量。
鍵入以下命令:
??? nmake -f Makefile.win python
并將生成的libsvm\windows\python\svmc.dll文件復制到libsvm\python目錄下,并改名svmc.pyd(非常重要!)。
在libsvm\python目錄下鍵入以下命令以檢驗效果:
??? python svm_test.py
如果能看到程序執行結果,說明libsvm和python之間的接口已經配置完成,以后就可以直接在python程序里調用libsvm的函數了!
轉自:http://yaowt.spaces.live.com/blog/cns!7280d7d3cc41a4ab!564.entry
如果你要用easy.py的話
1.下載libsvm
2.下載pathon。因為libsvm下載后的easy.py不能直接操作,需要python語言的支持
可以去http://www.python.org/或去網上搜索一下,默認安裝
3.下載pgnuplot,一般大家下載的都是一個gp373w32文檔,里面有直接可執行的pgnuplot.exe,不用安裝。(以前在網上看到的步驟都是“安裝pgnuplot”這樣的句子,讓我這個菜鳥想了好久怎么把它安裝到機子上,笨!)libsvm是用他完成繪圖的
4.修改pgnuplot在grid.py中的路徑(easy.py在執行的過程中要調用grid.py的)
,默認的gnuplot_exe = r"c:\tmp\gp373w32 \pgnuplot.exe",用ULtraEdit打開grid.py,修改成你自己pgnuplot.exe的路徑
5.libsvm是在DOS環境中工作的,所以打開命令提示符,我的方法比較笨,先修改路徑名到easy.py和grid.py所在的文件夾下,例如d:\livsvm\python
然后輸入:c:\python23\python easy.py heart_scale 就可以了
上面我寫的都沒有說版本問題,因為libsvm好象有版本 兼容問題,一般如果用python24不行的話就把python24換成python23,如果還不行的話而你又是XP系統的話,換個別的機子換個系統試試,我曾經把各種組合試了一遍,才得出的吐血經驗!
另外:如果還是不行的話,建議你在easy.py和grid.py中加入一些簡單的輸出語句看看是哪里的問題,python語言的輸出語句很簡單如:在覺得有問題的句子前面加上 print '1',后面加上一句 print '2',看看是否1,2都能輸出(不懂python語言,也只知道這些了)
轉載于:https://www.cnblogs.com/me115/archive/2010/04/16/1713549.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的libsvm与python的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ie里的button标签的一个bug
- 下一篇: 一步一步学Silverlight 2系列