三大特征選擇策略,有效提升你的機器學習水準
什么是特征選擇?面對試圖解決的實際問題之時,什么特征將幫助你建模并不總是很清晰。伴隨這一問題的還有大量數據問題,它們有時是多余的,或者不甚相關。特征選擇是這樣一個研究領域,它試圖通過算法完成重要特征的選取。
為什么不把全部特征直接丟進機器學習模型呢?
現實世界的問題并沒有開源數據集,其中更沒有與問題相關的信息。而特征選擇有助于你***化特征相關性,同時降低非相關性,從而增加了構建較好模型的可能性,并減小模型的整體大小。
***的特征選擇方法
比如說我們要預測水上公園的票價走勢;為此我們決定查看天氣數據、冰淇淋銷量、咖啡銷量以及季節狀況。
從下表中我們可以看到,夏季的門票明顯比其他季節好賣,而冬季賣不出一張票。咖啡銷量整年中比較穩定,冰淇淋則一年之中都有銷量,但旺季是 6 月。
表 1:文中使用的各項虛構數據。
圖 1:各項虛構數據的圖示對比。
我們想要預測水上公園票價,但很可能不需要所有數據以得到***結果。數據存在 N 個維度,并且 K 數值會給出***結果。但是不同大小的子集之間存在大量的結合。
我們的目標是減少維度數量,同時不損失預測能力。讓我們退回一步,看看那些我們能使用的工具。
窮舉搜索
這項技術能 100% 保證找到***的可能特征以建立模型。我們認為它非常可行,因為它將搜索所有可能的特征組合并找到返回模型***點的組合。
在我們的例子中有 15 個可能的特征組合可供搜索。我使用公式 (2^n—1) 計算組合的數量。這個方法在特征數量較少的時候可行,但如果你有 3000 個特征就不可行了。
幸運的是,還有一個稍微好點的方法可用。
隨機特征選擇
大多數情形中,隨機特征選擇可以工作的很好。如果要將特征數減少 50%,只需隨機選擇其中 50% 的特征并刪除。
模型訓練完成之后,檢驗模型的性能,重復這個過程直到你滿意為止。遺憾的是,這仍然是個蠻力方法。
當需要處理一個很大的特征集,又不能削減規模的時候,該怎么辦?
最小冗余***關聯特征選擇
將所有的想法整合起來就能得出我們的算法,即 mRMR 特征選擇。算法背后的考慮是,同時最小化特征的冗余并***化特征的關聯。因此,我們需要計算冗余和關聯的方程:
讓我們用虛構的數據寫一個快速腳本來實現 mRMR:
我并沒有對結果抱有什么期待,冰淇淋的銷量看起來能很精確地對售票量建模,而氣溫不可以。在這個例子中,似乎只需要一個變量就可以精確地對售票量建模,但在實際的問題中肯定不是這樣的。
mRMR 代碼地址:https://files.fm/u/bshx9hay
結論
你應該對這些特征選擇方法有更好的理解,它們能幫助你減少模型特征的總數量,并保留對目標來說最重要的特征。
原文:
https://medium.com/towards-data-science/three-effective-feature-selection-strategies-e1f86f331fb1
【本文是51CTO專欄機構“機器之心”的原創譯文,微信公眾號“機器之心( id: almosthuman2014)”】