【機器學習】:特徵篩選方法

一.基於統計值的篩選方法

1.過濾法:選擇特徵的時候,不管模型如何,首先統計計算該特徵和和label的一個相關性,自相關性,發散性等等統計指標。

優點:特徵選擇開銷小,有效避免過擬合

缺點:沒有考慮後續的學習器來選擇特徵,減弱了學習器的學習能力(因爲某些特徵可能和label算出來相關性不大,但是可能和其他特徵交叉後,會和label具有很強的關聯性)

2.單變量篩選法:

a:缺失值佔比

b:方差

c:頻數

d:信息熵

3.多變量篩選法

計算多個變量之間自己的相關性,繪製相應的相關性圖,可以使用皮爾遜相關係數,斯皮爾曼相關係數等等來作爲衡量。尤其是是在線性模型當中,兩個共線性的模型可能對模型並不具備促進作用,反而可能會帶來一些災難性的後果。樹模型則可以不考慮這種基於多變量的篩選方法。

二.基於模型驗證的篩選方法

基於模型的驗證集進行打分,是一種比較靠譜的方法,也是和最終模型的打分強相關的。

什麼意思呢?也就是說我們每增加一些特徵或者減少一些特徵,我們就用來訓練出一個模型,進行cv,也就是cross validation進行交叉驗證,看模型的準確度是否是上升了。

我們基於這種方法對其進行改進,還有一種時間開銷比較小的方法則是;排列重要性

也就是說,我們可以使用排列重要性這種方法對模型的特徵進行驗證和篩選。這種方法對於樹模型來說基本上來說是最好的方法了。

如下圖所示:

 

 當我們已經train出一個模型之後,我們對這個模型某一個特徵進行打亂,再對當前的數據進行預測,看準確度多少,如果模型的準確度下降比較多,那麼說明該變量對模型的影響很大。如果準確度下降不多,則說明該變量對模型的影響不大,完全可以將其剔除。這是一個十分有效且時間複雜度比較低的一個特徵篩選的方法,在我們進行特徵工程的時候可以經常使用這個方法,這個方法的代碼實現起來也並不是很難。

三.基於模型嵌入的篩選方法

特徵選擇被嵌入到學習器的訓練過程當中,利用模型參數來計算特徵重要性。

線性模型:使用線性模型的係數大小進行衡量(比如邏輯迴歸和線性迴歸當中某個特徵的前面的係數,看是否significant)

樹模型:使用特徵分裂過程當中的信息增益進行衡量

深度學習:使用注意力機制的權重進行衡量

 

但是模型認爲重要的特徵,不一定重要!因爲不重要的特徵可能和其他特徵之間具有強相關性,因此如果剔除,也可能會對模型的效果並不一定有一定的提升。模型認爲不重要的,也有可能重要。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章