特徵選擇:最合適的往往就在身邊
● 每週一言
當你命運遭受打擊的時候,千萬要抗住,有可能下一把就是王牌。
導語
特徵工程,是機器學習中必不可少的重要一環。在諸如kagglers、kddcup以及國內的天池大資料競賽等比賽中,top的優勝隊伍通常並不是使用了什麼高深的演算法,而是在特徵工程環節做好了充分的準備,僅使用常見的模型便取得了較為出色的效果。
由此可見,特徵工程在實際的實驗研究以及專案落地過程中,佔據著舉足輕重的地位。而在特徵工程裡,特徵選擇又是舉足輕重的一個環節,直接影響到了特徵工程的最終質量。那麼特徵選擇是什麼?又有哪些常見的方法?
特徵選擇
機器學習領域,特徵就是和樣本有關的所有資訊。從資訊理論角度來說,所有的這些資訊特徵,都包含了資訊量,也就是說都是有價值的。
既然特徵都有價值,為什麼還需要選擇?那是因為,模型的預測目標不一樣,與之相關的特徵就不一樣。比如預測一個人是否是亞洲人,“膚色”這個特徵或許最為相關;而如果要預測一個人是否月入十萬,“膚色”特徵基本就不相關了。
因此,預測目標的不同,決定了不同特徵的重要性。與預測目標相關性較低的特徵,不僅對預測準確率沒有幫助,還會帶來不必要的計算開銷。
瞭解了特徵選擇的原因,接下來我們介紹特徵選擇的幾種實現方式。常見的方法可以分為三類:過濾法(filter)、包裹法(wrapper)、嵌入法(embedding)。
過濾法 應該是最簡單直白的特徵選擇方法了。過濾法根據某種度量規則,從眾多特徵中挑選出對結果預測最有用的特徵。這裡的度量規則可以是各種距離度量(
過濾法的缺點是,只評估了單個特徵對結果的影響,並沒有考慮特徵之間的相關性。
包裹法 把特徵選擇看做是一個針對特徵子集的搜尋問題,依賴具體的模型效果來評估好壞。一般採用線性模型評估效果,先用全量特徵訓練,陸續批量刪掉權重較低的特徵,觀察指標,直到指標出現重大下滑停止。所用的方法叫 遞迴特徵消除演算法。
嵌入法 和包裹法的形式一樣,也是根據模型來分析特徵的重要性。嵌入法最常見的實現方式是用L1正則化來做特徵選擇。
除開上述三類方法,我們還可以給特徵加一個預處理,就是用規則的方式先去掉值域變化較小的特徵,這是一種最簡單的特徵選擇方法。從直觀上看,波動不大的特徵值對預測目標的影響也不會大,比如特徵值全部為某一個常數,可以直接剔除。
以上便是特徵選擇的講解,敬請期待下節內容。
結語
感謝各位的耐心閱讀,後續文章於每週日奉上,敬請期待。歡迎大家關注小鬥公眾號 對半獨白!