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