機器學習特徵選擇的方法總結
1.特徵選擇的重要性
隨着深度學習的發展, 大大縮減了特徵提取和設計的任務。 不過, 特徵工程依然是各種機器學習應用領域的重要組成部分。其中對於特徵選擇(排序)的研究對於數據科學家、機器學習從業者來說非常重要。好的特徵選擇能夠提升模型的性能,更能幫助我們理解數據的特點、底層結構,對進一步改善模型、算法都有着重要作用。
特徵選擇主要有兩個功能:
- 1.減少特徵數量、降維,使模型泛化能力更強,減少過擬合
- 2.增強對特徵和特徵值之間的理解
特徵選擇的經典經驗總結起來主要有三種: 過濾式(Filter), 封裝式(Wrapper), 集成式(Embedded)。 接下來對這三大類進行詳細說明。
2.Filter 過濾式
顧名思義,就是要基於貪心的思想, 把需要的特徵篩/濾出來。 一般說來, 基於貪心就需要對特徵進行打分。 而這個打分可以基於領域知識, 相關性, 距離,缺失, 穩定性 等等。
2.1 單一特徵選擇
根據每個特徵屬性和目標屬性之間的計算值來進行排序選擇:
a. Welch’s t-Test: 來判斷兩個屬性的分佈的均值方差距離。
b. Fish-Score: 和Welch’s t-Test類似, 計算兩個分佈的距離, 均值只差和方差之和的距離。
c. Chi-Squared test: 計算類別離散值之間的相關性。
d. Information Gain:計算兩個劃分的一致性。
2.2 多特徵選擇
根據多個特徵屬性和目標屬性之間的計算值來進行排序選擇:
e. Relief-F: 根據隨機選擇的樣本點,來計算屬性之間的相關性。
f. Correlation Feature Selection (CFS): 利用屬性之間的相關性, 進行選擇。
3. Wrapper 封裝式
通過目標函數來決定是否加入一個變量,就是先選定特定算法,然後再根據算法效果來選擇特徵集合。 一般會選用普遍效果較好的算法, 例如啓發式搜索,完全搜索,隨機搜索(GA,SA)等等。
這可以使用前面提到的各種減小搜索空間的嘗試。 其中最經典的是使用啓發式搜索(Heuristic Search), 而概括的來說主要分爲兩大類:
g. Forward Selection: 挑出一些屬性, 然後慢慢增大挑出的集合。
h. Backward Elimination: 刪除一些屬性,然後慢慢減小保留的集合。
4. Embedded 集成式
利用正則化思想, 將部分特徵屬性的權重變成零。 常見的正則化有L1的Lasso,L2的Ridge和混合的Elastic Net。其中L1的算子有明顯的特徵選擇的功能。
在這裏面,比較簡單的就是會自動進行特徵選擇, 而且一次性就搞定了, 速度也不錯, 難點就是損失函數的選擇和縮放參數的選擇。
4.1常見的損失函數:
-
Binary(0-1) loss: 灰線 對應錯誤率
-
Square loss: 紫線 對應最小二乘法
-
Hinge loss: 淺藍 對應 SVM
-
Logistic loss:紅線 對應 邏輯迴歸
- Exponential loss:綠線 對應 adaboost
4.2 結構化Lasso
除了上述的簡單的Lasso,還有結構化的Lasso。
i. Group Lasso: 先將屬性進行分組, 然後對每個分組,看成一個屬性那樣 的採用Lasso的方法選擇, 要麼全要, 要麼全部不要。 再進一步, Sparse Group Lasso再在組內進行選擇。
j. Tree-Structured Lasso: 除了前面的扁平(Flat)的結構外, 還有層次化的結構。
對於這種情況, 同樣採用類似Group Lasso的思想。 對於一個數的子結構, 要麼全要或者全不要,也可以允許分支單獨要。
在這種樹結構的思想下, 那麼每個樹的分支的正則化懲罰也可以採用不同的形式。
k. Graph Structure Lasso: 更進一步還可以推廣到基於圖的Lasso
在圖的情況下, 那麼兩兩節點之間要定義一個懲罰項。
樹結構Lasso也可以利用圖來表示。
再次強調, 很多時候, 需要綜合上面的三種方式來進行綜合選擇。 特徵選擇不是一個容易的任務噢。
小結, 特徵選擇效果好還需要多實戰體會的, 下面再簡單歸納下:
Filter :
優點: 快速, 只需要基礎統計知識。
缺點:特徵之間的組合效應難以挖掘。
Wrapper:
優點: 直接面向算法優化, 不需要太多知識。
缺點: 龐大的搜索空間, 需要定義啓發式策略。
Embedded:
優點: 快速, 並且面向算法。
缺點: 需要調整結構和參數配置, 而這需要深入的知識和經驗。
參考內容:
http://www.rokkincat.com/blog/2016/04/28/feature-selection
https://mp.weixin.qq.com/s/TRgaqpokbNHXKS0E2Lz78A
http://www.denizyuret.com/2014/02/machine-learning-in-5-pictures.html