【機器學習】特徵選擇(過濾式、包裹式、嵌入式)

其他機器學習系列文章見於專題:機器學習進階之路——學習筆記整理,歡迎大家關注。

1. 前言

  從給定的特徵集合中選擇出相關特徵子集的過程,稱爲“特徵選擇”。特徵選擇是一個重要的數據預處理過程,進行特徵選擇的原因如下:

  1. 減少特徵數量、降維,使模型泛化能力更強,減少過擬合;

  2. 去除不相關特徵,降低學習難度。

  常見的特徵選擇方法大致可以分爲三類:過濾式、包裹式和嵌入式。

2. 過濾式選擇

  過濾式方法先對數據集進行特徵選擇,然後再訓練學習器。特徵選擇過程與後續學習器無關,這相當於先對初始特徵進行“過濾”,再用過濾後的特徵訓練模型。

  過濾式選擇的方法有:

  1. 移除低方差的特徵;

  2. 相關係數排序,分別計算每個特徵與輸出值之間的相關係數,設定一個閾值,選擇相關係數大於閾值的部分特徵;

  3. 利用假設檢驗得到特徵與輸出值之間的相關性,方法有比如卡方檢驗、t檢驗、F檢驗等。

  4. 互信息,利用互信息從信息熵的角度分析相關性。

3. 包裹式選擇

  包裹式從初始特徵集合中不斷的選擇特徵子集,訓練學習器,根據學習器的性能來對子集進行評價,直到選擇出最佳的子集。

  包裹式特徵選擇直接針對給定學習器進行優化。

  優點:從最終學習器的性能來看,包裹式比過濾式更好;

  缺點:由於特徵選擇過程中需要多次訓練學習器,因此包裹式特徵選擇的計算開銷通常比過濾式特徵選擇要大得多。

包裹法的流程圖

  包裹法中,特徵子集的搜索問題,最容易想到的辦法是窮舉法,還可以在拉斯維加斯方法框架下使用隨機策略進行子集搜索(Las Vegas Wrapper,LVW)。但是由於LVW算法中特徵子集搜索採用了隨機策略,每次特徵子集評價都需要訓練學習器,計算開銷很大,如果初始特徵數很多,算法可能運行很長時間都達不到停止條件,若有運行時間限制,可能給不出解。

  因此,我們通常使用的是貪心算法:如前向搜索(在最優的子集上逐步增加特徵,直到增加特徵並不能使模型性能提升爲止)、後向搜索、雙向搜索(將前向搜索和後向搜索相結合)。

4. 嵌入式選擇

  在過濾式和包裹式特徵選擇方法中,特徵選擇過程與學習器訓練過程有明顯的分別。而嵌入式特徵選擇在學習器訓練過程中自動地進行特徵選擇

  嵌入式選擇最常用的是L1L_1正則化和L2L_2正則化(關於正則化,詳見之前的博客【機器學習】一文讀懂正則化與LASSO迴歸,Ridge迴歸)。

  正則化項越大,模型越簡單,係數越小,當正則化項增大到一定程度時,所有的特徵係數都會趨於0,在這個過程中,會有一部分特徵的係數先變成0。也就實現了特徵選擇過程。

  邏輯迴歸、線性迴歸、決策樹都可以當作正則化選擇特徵的基學習器,只有可以得到特徵係數或者可以得到特徵重要度的算法纔可以作爲嵌入式選擇的基學習器。

參考文獻:

  1. 特徵工程之特徵選擇
  2. 特徵選擇 (feature_selection)
  3. 如何進行特徵選擇(理論篇)機器學習你會遇到的“坑”
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章