有一句話這麼說,特徵決定上限,模型逼近上限。特徵選擇對後面的模型訓練很重要,選擇合適重要的特徵,對問題求解尤爲重要,下面介紹一些常見的特徵選擇方法。
通常來說,從兩個方面考慮來選擇特徵:
- 特徵是否發散:如果一個特徵不發散,例如方差接近於0,也就是說樣本在這個特徵上基本上沒有差異,這個特徵對於樣本的區分並沒有什麼用。
- 特徵與目標的相關性:這點比較顯見,與目標相關性高的特徵,應當優選選擇。
①相關係數法 使用相關係數法,先要計算各個特徵對目標值的相關係
常用的有皮爾遜相關係數,斯皮爾曼秩係數,可見本博客中的相關分析http://blog.csdn.net/u014755493/article/details/69744860
②構建單個特徵的模型,通過模型的準確性爲特徵排序,藉此來選擇特徵
③通過L1正則項來選擇特徵:L1正則方法具有稀疏解的特性,天然具備特徵選擇的特性
分別使用L1和L2擬合,如果兩個特徵在L2中係數相接近,在L1中一個係數爲0一個不爲0,那麼其實這兩個特徵都應該保留,原因是L1對於強相關特徵只會保留一個
④訓練能夠對特徵打分的預選模型:RandomForest和LogisticRegression/GBDT等都能對模型的特徵打分,通過打分獲得相關性後再訓練最終模型
⑤通過特徵組合後再來選擇特徵:如對用戶id和用戶特徵最組合來獲得較大的特徵集再來選擇特徵,這種做法在推薦系統和廣告系統中比較常見
⑥深度學習
⑦傳統用前進或者後退法的逐步迴歸來篩選特徵或者對特徵重要性排序,對於特徵數量不多的情況還是適用的。
⑧方差選擇法,計算各個特徵的方差,然後根據閾值,選擇方差大於閾值的特徵
互信息是用來評價一個事件的出現對於另一個事件的出現所貢獻的信息量,具體的計算公式爲:
其中U、C代表兩個事件,e的取值可以爲0或者1,1代表出現這個事件,0代表不出現。