1. 程式人生 > >特徵選擇:最合適的往往就在身邊

特徵選擇:最合適的往往就在身邊

● 每週一言

當你命運遭受打擊的時候,千萬要抗住,有可能下一把就是王牌。

導語

特徵工程,是機器學習中必不可少的重要一環。在諸如kagglers、kddcup以及國內的天池大資料競賽等比賽中,top的優勝隊伍通常並不是使用了什麼高深的演算法,而是在特徵工程環節做好了充分的準備,僅使用常見的模型便取得了較為出色的效果。

由此可見,特徵工程在實際的實驗研究以及專案落地過程中,佔據著舉足輕重的地位。而在特徵工程裡,特徵選擇又是舉足輕重的一個環節,直接影響到了特徵工程的最終質量。那麼特徵選擇是什麼?又有哪些常見的方法?

特徵選擇

機器學習領域,特徵就是和樣本有關的所有資訊。從資訊理論角度來說,所有的這些資訊特徵,都包含了資訊量,也就是說都是有價值的。

fig1

既然特徵都有價值,為什麼還需要選擇?那是因為,模型的預測目標不一樣,與之相關的特徵就不一樣。比如預測一個人是否是亞洲人,“膚色”這個特徵或許最為相關;而如果要預測一個人是否月入十萬,“膚色”特徵基本就不相關了。

因此,預測目標的不同,決定了不同特徵的重要性。與預測目標相關性較低的特徵,不僅對預測準確率沒有幫助,還會帶來不必要的計算開銷。

fig2

瞭解了特徵選擇的原因,接下來我們介紹特徵選擇的幾種實現方式。常見的方法可以分為三類:過濾法(filter)包裹法(wrapper)嵌入法(embedding)

過濾法 應該是最簡單直白的特徵選擇方法了。過濾法根據某種度量規則,從眾多特徵中挑選出對結果預測最有用的特徵。這裡的度量規則可以是各種距離度量(

機器學習方法篇(18)——聚類),比如 卡方檢驗尤拉距離Pearson相關係數;也可以是資訊熵(如何直觀理解交叉熵及其優勢?),比如 資訊增益資訊增益率機器學習方法篇(3)——決策樹入門)。

過濾法的缺點是,只評估了單個特徵對結果的影響,並沒有考慮特徵之間的相關性。

fig3

包裹法 把特徵選擇看做是一個針對特徵子集的搜尋問題,依賴具體的模型效果來評估好壞。一般採用線性模型評估效果,先用全量特徵訓練,陸續批量刪掉權重較低的特徵,觀察指標,直到指標出現重大下滑停止。所用的方法叫 遞迴特徵消除演算法

嵌入法 和包裹法的形式一樣,也是根據模型來分析特徵的重要性。嵌入法最常見的實現方式是用L1正則化來做特徵選擇。

正則項:把控擬合方向的馬車伕 這篇文章講到L1範數有個美稱叫“稀疏規則運算元”,用其正則化輸出篩選出的非零特徵,便是對預測目標做出了貢獻的特徵。

fig4

除開上述三類方法,我們還可以給特徵加一個預處理,就是用規則的方式先去掉值域變化較小的特徵,這是一種最簡單的特徵選擇方法。從直觀上看,波動不大的特徵值對預測目標的影響也不會大,比如特徵值全部為某一個常數,可以直接剔除。

以上便是特徵選擇的講解,敬請期待下節內容。

結語

感謝各位的耐心閱讀,後續文章於每週日奉上,敬請期待。歡迎大家關注小鬥公眾號 對半獨白

face