我正在尋找的選擇方法是基於子集評估的選擇方法(即不要簡單地對單個特徵進行排名)。我更喜歡Matlab中的實現或基於WEKA的實現,但其他語言的實現仍然有用。在線提供基於過濾器的特徵選擇方法嗎?
我知道CsfSubsetEval和ConsistencySubsetEval在WEKA的存在,但他們並沒有帶來良好的分類性能,可能是因爲他們遭受以下限制:
CsfSubsetEval向小功能子集偏置,如[1]所述,這可能會阻止局部預測特徵被包括在選定的子集中。
ConsistencySubsetEval使用min-features bias [2],類似於CsfSubsetEval,導致選擇太少的特徵。
我知道這是「太少」,因爲我已經建立分類模型具有較大的子集及其分類性能相對要好得多。
[1] MA館,基於相關的機器學習特徵子集選擇,1999年
[2]劉桓,以及淚雨,在整合特徵選擇算法,分類和聚類,2005年
您是否嘗試遺傳算法進行特徵選擇? – 2014-09-01 13:26:24
不,我沒有。我嘗試了一種特徵選擇方法(即WEKA中的InfoGainAttributeEval)來對各個特徵進行排序。然後,我建立具有不同數量特徵的分類模型。我最終選擇了在測試數據集上對待測試的訓練數據集執行最好的模型。按照這種方法選擇的特徵的數量大於上述基於子集評估的方法所選擇的特徵的數量,並且分類性能也更好。 – 2014-09-01 15:25:30