2011-09-16 65 views
1

模型的精度和功能的重要性,我開始使用LIBSVM進行迴歸分析。我的世界有大約20個特徵和數千到數百萬的訓練樣本。測量SVM

我很好奇兩件事情:

  1. 是否有表明該模型的準確性和信心,也許在.MODEL文件或其他地方的指標?

  2. 如何確定一個功能是否是顯著?例如,如果我試圖預測體重是身高,肩寬,性別和頭髮顏色的函數,我可能會發現頭髮的顏色在預測體重方面並不是很重要的特徵。這是反映在.model文件中,還是有一些方法可以找出?

回答

2
LIBSVM

計算P系在所述分類器的確定性測試點 - 值(即,多遠是從決策邊界的測試點以及如何寬是邊緣)。

我想你應該考慮的功能重要性的確定從訓練你的支持向量機一個單獨的問題。有噸的「功能選擇」(剛打開任何教科書)的方法,但一個容易理解的,簡單的方法是一個簡單的交叉驗證如下:

  1. 將您的數據集中到ķ褶皺(例如,ķ = 10是常見的)
  2. 對於每個ķ褶皺:
    1. 獨立數據到火車/測試集(當前摺疊是測試集,其餘爲訓練設置)
    2. 只使用ňň功能-1
    3. 衡量預測性能
  3. 平均的所有ķň -1特徵分類的性能訓練你的SVM分類測試摺疊
  4. 針對所有其他功能重複1-3次

你也可以做,你每次測試的ñ功能分開,但你可能會錯過特徵之間重要的二階以上的相互作用相反。

但是,一般來說,SVM擅長忽略不相關的特徵。

你也可以試試,用主成分分析得到的數據是如何分佈的感覺可視化的數據。

+0

好東西,但一個澄清 - 你說:「LIBSVM計算基於分類的確定性測試點的p值」 - 它使我正在做一個迴歸差異,而不是分類? –

+0

我從來沒有用過libsvm進行迴歸,所以我不確定。 – awesomo

1

F-得分是常用於度量特徵選擇機器學習。

自從3.0版本,LIBSVM庫包含了一個名爲工具目錄。在該目錄是一個Python腳本調用fselect.py,其計算F-得分。要使用它,只需從命令行執行並傳入由訓練數據組成的文件(以及可選的測試數據文件)。在其對應於該特徵的該模型的結果(迴歸得分)的重要性數據集

python fselect.py data_training data_testing 

輸出包括的fscore每個的特徵。

+0

看起來像它會做的伎倆(我的問題的第二部分)。 FWIW,fselect.py包含INT在LIBSVM-3.1(從www.csie.ntu.edu.tw/~cjlin/libsvm/)tools目錄,但是你可以從www.csie.ntu.edu.tw單獨下載/~cjlin/libsvmtools/fselect/fselect.py –

+0

錯字:......不包含在工具目錄... –

+0

@ fearless_fool - 我打算我的答案來解決*您Q的兩個*部分 - 即, _F-statistic_(或F-分數)是我的回答第一部分。 – doug