top of page

 學習

 

 

 

·  Libsvm實驗

 

第一次測試數據madelon,得出準確率為百分之五十:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第二次:

準確率不對 我們現在進行測試 將默認值修改 結果不正確

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

通常而言,比較重要的參數是 gamma (-g) 跟 cost (-c) 。而 cross validation (-v) 的參數常用 5; cost 預設值是 1, gamma 預設值是 1/k ,k 等於輸入 資料筆數。 那我們怎麼知道要用多少來當參數呢? 

用 試 的! 

是的,別懷疑,就是 Try 參數找比較好的值. 

 

Try 參數的過程常用 exponential 指數成長的方式來增加與減少參數的數值, 也就是 2^n (2 的 n 次方). 

 

 

第三次:

為提升準確率所做的數據測試:

前面提到,在 train 的時候可以下一些參數。(直接執行 svm-train 不指定輸入檔與參數會列出所有參數及語法說明) 這些參數對應到原始 SVM 公式的一些參數,所以會影響 predict 的正確與否.


再來 predict ,正確率有所改變

一般而言, SVM 使用的方式(在決定參數時)常是這樣 : 

1. 先有已分好類的一堆資料
2. 亂數拆成好幾組 training set
3. 用某組參數去 train 並 predict 別組看正確率
4. 正確率不夠的話,換參數再重複 train/predict


等找到一組不錯的參數後,就拿這組參數來建 model 並用來做最後對未知資料的 predict。 這整個過程叫 cross validation , 也就是交叉比對. 在我們找參數的過程中,可以利用 svmtrain 的內建 cross validation 功能來幫忙 : 

-v n: n-fold cross validation


n 就是要拆成幾組,像 n=3 就會拆成三組,然後先拿 1跟2來 train model 並 predict 3 以得到正確率; 再來拿 2跟 3 train 並 predict 1,最後 1,3 train 並 predict 2。其他以此類推. 

 

變化:

用svm-train.exe -s () -t ()  madelon.train語句測試其數據,S與T分別從0-4進行數據測試,得出的結果有所變化,其中svm-train.exe -s 1 -t 1 madelon.train的準確率相較於其他數據最高。

 

 

 

 

 

 

 

 

 

在Windows下導入不了excel格式的文檔

 

 

 

 

 

 

第四次:

第二個測試數據案例 splice:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

提為提高正確率所做的數據處理,但是測試的數據正確率皆比原先低

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第五次:

而後我們使用了excel對數據進行相關性的分析測試,提取每列數據中相關性最高的五列、十列、十五列等進行數據的相對應測試,分析出第一個測試數據中準確率最高的。

但我們在excel的處理過程中由於數據的預處理過程中沒有良好的把數據進行處理,結果出現了導入不了Windows環境下,數據的分析出現了較大的問題,準確率得不到良好的提升。不過最後還是順利的解決了該問題

 

把train,test表格中的每一列與第1列(1.-1...)進行相關性分析(500次),然後選取前10個(絕對值大的)把剩下的列刪掉。

 

點擊“公式”,點擊“函數”點擊”correl”

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

数据的相关性分析:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

bottom of page