關於libsvm--回覆網友kenny
您好..謝謝您這麼快回應我這問題..:),我的研究是關於網路的,所以我必須收集網路封包在將它分類...研究過相關paper,最近幾年似乎SVM很紅,分類的效果也很好,所以就想利用它來分類。
如果想收集網路封包來做研究的話,這部份的data preprocessing loading會很重哦!而且也很花時間…因為光是要萃取特徵值出來,並且轉換成svm可以吃的格式,應該會花上你許多的時間!
anyway...你可以建立一個模擬的環境,利用sniffer or tcpdump…等等的工具來capture網路封包!然後再做feature extract的動作…
的確,據我研究的結果,svm拿來作分類的效果真的不錯,有許多文獻也支持此一說法!不過還是要看研究領域及資料的特性囉!
不過您可能誤會我意思了,我意思不是要將libsvm寫成php,因為我網頁是用php寫的,所以我想利用網頁來訓練data,但是不知道要怎麼呼叫 libsvm程式執行?...不過我想應該是不可能吧..哈...或許用java的applet還有一點可能...但是我看原始碼並沒有 svm_scale.java檔...真是麻煩...因為我的資料要scale過才能train(不知道您的會不會有這問題?)
小弟認為…svmscale這隻程式其實不難,主要是先找出每個特徵值的最大、最小值,然後再針對欄位的資料進行標準差…把特徵值的範圍scale到+1~-1之間!做scale有什麼好處呢?
1.計算較容易
2.增加預測正確率
如果你是要訓練網頁的話,那肯定是需要繁雜的資料前置處理了…如果我猜得沒錯的話,svmscale這支程式應該不會是難倒你的問題…反而是前置處理才最麻煩,因為這個步驟包含了特徵值萃取,如果你特徵值萃取得當的話,我想後續的實驗結果應該都會很不錯哦!
any...svmscale這隻程式原理不難,大概才300多行而已!主要處理的動作也很少…你可以去看一下程式!然後試著改寫囉!
我覺得最麻煩的是參數的選擇,因為要一直try...=.=||,之前將一組資料train再用其他資料test,train那組的參數來test反而很低,就感覺每組資料都需要自己的參數....哀...怎麼會這樣呢?
參數的選擇本來就需要不斷的try and error囉!依你的敘述的話,我想你應該有發生overfitting and underfitting之類的問題!你可以survey一下這部份的文獻…看能不能試著解決這個問題(前者應該比較容易發生吧,我猜)
good luck...
ps.我之前有規畫寫一些關於overfitting and underfitting的文章,因為我打算寫的完整有理論一點,所以可能會稍微慢一點吧!哈…
沒有留言:
張貼留言