欢迎来到天天文库
浏览记录
ID:36766189
大小:239.03 KB
页数:7页
时间:2019-05-15
《笨蛋也可以用的libsvm》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、笨蛋也可以用的libsvmbypavement@cmlab.csie.ntu.edu.tw主要參考:piaip的(lib)SVM簡易入門http://ntu.csie.org/~piaip/svm/svm_tutorial.htmlAPracticalGuidetoSupportVectorClassificationhttp://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf前言:因為我微積分很爛,libsvm的原理都聽不懂,可是我還是想用libsvm,怎麼辦?還好林智仁老師把libsvm包得很好用,還寫了很好的tutorial,piai
2、p大帥哥似乎寫了一篇中英對照版的guide,所以我有點不知道要寫什麼。還是把自己執行的過程貼一貼好了。準備工作:這篇假設使用的平台是WindowsXP,從命令列執行。先把一些需要的東西裝好,我們總共需要三個東西:libsvm,python,gnuplot。Libsvm:到http://www.csie.ntu.edu.tw/~cjlin/libsvm/下載libsvm,然後解壓縮就好了,這邊假設解到C槽。Python:到http://www.python.org/download/下載完直接安裝就好了。Gnuplot:下載ftp://ftp.gnuplot.info/pub/gnuplot/
3、gp400win32.zip解壓縮到c:tmp這樣就準備好了。使用說明:到C:libsvm-2.82windows下面看看,需要的功能大概就這幾個:SvmtrainSvmpredictSvmscaleSvmtoy先從svmtrain說起,這個指令可以將一組trainingdata做成一個model,最簡單的用法就是不加參數,直接下指令:C:libsvm-2.82windows>svmtrain.exetdata意思是以tdata這個檔案當作trainingdata,做出一個model,並輸出成tdata.model這個檔案。若是用圖形來觀察也許會比較清楚,這時候就可以用svmtoy
4、看看結果,執行C:libsvm-2.82windows>svmtoy.exe應該會跳一個小視窗出來圖一:用滑鼠左鍵灑點,”Change”換顏色,可以做出下面的圖二。圖二:按下”Run”就會跑出以下的圖。圖三:可以發現原先三種顏色的點被分區了,這邊所有的點就是我們的trainingdata,而model記錄的就是點的分區狀況。把trainingdata存起來,再用文字編輯器打開看看,格式長的像這樣:11:0.3860002:0.90200011:0.6020002:0.86200011:0.3100002:0.79200011:0.3020002:0.67200021:0.5680002:
5、0.66800021:0.7640002:0.52400021:0.5140002:0.658000……21:0.8900002:0.84600021:0.9280002:0.68400021:0.6500002:0.90800021:0.5400002:0.95600031:0.6100002:0.45800031:0.7800002:0.35400031:0.8280002:0.43800031:0.9380002:0.36800031:0.8980002:0.23600031:0.6480002:0.19200031:0.7360002:0.126000挑其中一行來看31:0.7360
6、002:0.126000冒號的前後分別代表feature的編號及數值,即,第一個feature的值為0.736,第二個feature的值為0.126。開頭的3代表這個點屬於第三個分類。從圖上看來,兩個feature分別為X軸及Y軸,而分類代表顏色。換句話說,座標在(0.736,0.126)的點是黃色。做出來的model可以當作圖上的顏色分區。有了分區後,隨便指定一個座標,就可以得到對應的顏色了。所以一個好的model,應該要切得很乾淨,黃色區域最好不要出現紫色的點。從這裡看來圖三切的有點差,改一下參數就可以切的好很多。例如參數改成”-t2–c100000”,切出圖四:圖四:所以要切的好,參數
7、就要下的好。還好林智仁老師有寫好的tool幫我們試參數,不用自己手動試啦。首先,到C:libsvm-2.82tools底下找grid.py,然後copy到C:libsvm-2.82windows,接著執行:C:libsvm-2.82windows>pythongrid.pytdata就會看到一堆數據和圖在亂飆,不用怕,那是在暴力試參數。整個跑完之後,去最後一行找參數:512.08.089.6104
此文档下载收益归作者所有