特徵選擇是資料獲取中最關鍵的一步,可惜很多教程直接跳過了這一部分。本文將分享有關特徵選擇的 3 個傑出方法,有效提升你的機器學習水準。
「輸入垃圾資料,輸出垃圾結果」——每個機器學習工程師
什麼是特徵選擇?面對試圖解決的實際問題之時,什麼特徵將幫助你建模它並不總是很清晰。伴隨這一問題的還有大量資料問題,它們有時是多餘的,或者不甚相關。特徵選擇是這樣一個研究領域,它試圖透過演算法完成重要特徵的選取。
為什麼不把全部特徵直接丟進機器學習模型呢?
現實世界的問題並沒有開源資料集,其中更沒有與問題相關的資訊。而特徵選擇有助於你最大化特徵相關性,同時降低非相關性,從而增加了構建較好模型的可能性,並減小模型的整體大小。
頂級的特徵選擇方法
比如說我們要預測水上公園的票價走勢;為此我們決定檢視天氣資料、冰淇淋銷量、咖啡銷量以及季節狀況。
從下表中我們可以看到,夏季的門票明顯比其他季節好賣,而冬季賣不出一張票。咖啡銷量整年中比較穩定,冰淇淋則一年之中都有銷量,但旺季是 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