特徵選擇

一、什麼是特徵選擇?
特徵選擇是對 根據所研究的問題 的 數據 根據數據字段與標籤或者結果之間的相關程度進行選擇,是效率(所研究問題的數據對問題結果的有效影響)達到最大化。

二、爲什麼要進行特徵選擇?

  1. 維度災難 - 過度擬合 : 一般經驗是當數據中的列數多於行數,可能會對模型產生不好的影響,即模型會過度地擬合數據,導致模少泛化能力。此外,大量特徵使得模型體積龐大,耗時,並且難以在生產中實施。
  2. 可解釋性:希望模型簡單並可解釋。當有非常多的特徵時,將會失去可解釋性。
  3. garbage in - garbage out : 很多數時候,我們會有許多非信息化特徵。例如,名稱或ID變量這些無意義的特徵,如果不進行特徵選擇,那麼這些質量比較差的輸入特徵也就會產生質量差的輸出。

三、如何進行特徵選擇?

核心就是隻選擇有用的特徵,可以通過很多方式來做,通常可以分爲三種。

  • 基於過濾器:指定一些指標並基於此過濾特徵,例如:相關性/卡方檢驗。
  • 基於包裝器:包裝器方法將選擇一組特徵視爲搜索問題,例如:遞歸特徵消除方法。
  • 嵌入式:嵌入式方法使用具有內置特徵選擇方法的算法,例如:Lasso和RF有自己的特徵選擇方法。

進行特徵選擇之前一般需要做一些預處理,如刪除空值和獨熱編碼、錯誤值等等。

1 . 皮爾遜相關係數(pearson):這是一種基於過濾器的方法。
在這裏插入圖片描述
2.卡方檢驗(chi-squared)
這也是基於過濾器的方法。
在這種方法中,計算目標和數值變量之間的卡方度量,只選擇具有最大卡方值的變量。

3. 遞歸特徵消除
這是一種基於包裝器的方法。正如之前所說,包裝器方法將特徵選擇視爲搜索問題。

遞歸特徵消除(RFE)的目標是通過遞歸地考慮越來越小的特徵集來選擇特徵。首先,在初始特徵集上訓練估計器,並且通過 coef_ 屬性或通過 feature_importances_ 屬性獲得每個特徵的重要性。然後,從當前的一組特徵中刪除最不重要的特徵。在修剪的集合上遞歸地重複該過程,直到最終到達所需數量的要選擇的特徵。

4. Lasso:從模型中選擇
這是一種嵌入式方法。如前所述,嵌入式方法使用具有內置特徵選擇方法的算法。
例如,Lasso和RF有自己的特徵選擇方法。Lasso Regularizer強制將許多特徵權重歸零。

5. 基於樹:SelectFromModel

還可以使用隨機森林,根據特徵的重要性選擇特徵。

使用每個決策樹中的節點雜質計算特徵的重要性。在隨機森林中,最終的特徵重要性是所有決策樹特徵重要性的平均值。也可以使用LightGBM,或者XGBoost對象,只要它有一個feature_importances_屬性。

6.將多種選擇器組合使用
嘗試組合多種選擇方法進行特徵篩選,計算各種特徵出現的頻次,並按照頻次對特徵排序,或者以概率的角度對多種選擇器的結果進行篩選。

7.根據經驗進行特徵選擇
根據自己的經驗在所研究問題的數據上進行特徵選擇,當然這是風險第二大的,因爲風險最大的是你直接使用數據訓練算法(俗稱算法盲人、或者喂數據),而不去探究數據裏的信息。

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