特徵選擇

在機器學習和統計學中，特徵選擇（feature selection）也被稱為變量選擇、屬性選擇 或變量子集選擇 。它是指：為了構建模型而選擇相關特徵（即屬性、指標）子集的過程。使用特徵選擇技術有三個原因：

*簡化模型，使之更易於被研究人員或用戶理解，
*縮短訓練時間，
*改善通用性、降低過擬合（即降低方差islr ）
要使用特徵選擇技術的關鍵假設是：訓練數據包含許多冗餘 或無關 的特徵，因而移除這些特徵並不會導致丟失信息。 冗餘 或無關 特徵是兩個不同的概念。如果一個特徵本身有用，但如果這個特徵與另一個有用特徵強相關，且那個特徵也出現在數據中，那麼這個特徵可能是冗餘的。guyon-intro
特徵選擇技術與特徵提取有所不同。特徵提取是從原有特徵的功能中創造新的特徵，而特徵選擇則只返回原有特徵中的子集。
特徵選擇技術的常常用於許多特徵但樣本（即數據點）相對較少的領域。特徵選擇應用的典型用例包括：解析書面文本和微陣列數據，這些場景下特徵成千上萬，但樣本只有幾十到幾百個。

**介紹**
特徵選擇算法可以被視為搜索技術和評價指標的結合。前者提供候選的新特徵子集，後者為不同的特徵子集打分。
最簡單的算法是測試每個特徵子集，找到究竟哪個子集的錯誤率最低。這種算法需要窮舉搜索空間，難以算完所有的特徵集，只能涵蓋很少一部分特徵子集。
選擇何種評價指標很大程度上影響了算法。而且，通過選擇不同的評價指標，可以把特徵選擇算法分為三類：包裝類、過濾類和嵌入類方法- 包裝類方法使用預測模型給特徵子集打分。每個新子集都被用來訓練一個模型，然後用驗證數據集來測試。通過計算驗證數據集上的錯誤次數（即模型的錯誤率）給特徵子集評分。由於包裝類方法為每個特徵子集訓練一個新模型，所以計算量很大。不過，這類方法往往能為特定類型的模型找到性能最好的特徵集。- 過濾類方法採用代理指標，而不根據特徵子集的錯誤率計分。所選的指標算得快，但仍然能估算出特徵集好不好用。常用指標包括互信息、逐點互信息、皮爾遜積矩相關係數、每種分類/特徵的組合的幀間/幀內類距離或顯著性測試評分。 過濾類方法計算量一般比包裝類小，但這類方法找到的特徵子集不能為特定類型的預測模型調校。由於缺少調校，過濾類方法所選取的特徵集會比包裝類選取的特徵集更為通用，往往會導致比包裝類的預測性能更為低下。不過，由於特徵集不包含對預測模型的假設，更有利於暴露特徵之間的關係。許多過濾類方法提供特徵排名，而非顯式提供特徵子集。要從特徵列表的哪個點切掉特徵，得靠交叉驗證來決定。過濾類方法也常常用於包裝方法的預處理步驟，以便在問題太複雜時依然可以用包裝方法。- 嵌入類方法包括了所有構建模型過程中用到的特徵選擇技術。這類方法的典範是構建線性模型的LASSO方法。該方法給迴歸係數加入了L1懲罰，導致其中的許多參數趨於零。任何迴歸係數不為零的特徵都會被LASSO算法“選中”。LASSO的改良算法有Bolasso和FeaLect。Bolasso改進了樣本的初始過程。FeaLect根據迴歸係數組合分析給所有特徵打分。 另外一個流行的做法是遞歸特徵消除（Recursive Feature Elimination）算法，通常用於支持向量機，通過反覆構建同一個模型移除低權重的特徵。這些方法的計算複雜度往往在過濾類和包裝類之間。
傳統的統計學中，特徵選擇的最普遍的形式是逐步迴歸，這是一個包裝類技術。它屬於貪心算法，每一輪添加該輪最優的特徵或者刪除最差的特徵。主要的調控因素是決定何時停止算法。在機器學習領域，這個時間點通常通過交叉驗證找出。在統計學中，某些條件已經優化。因而會導致嵌套引發問題。此外，還有更健壯的方法，如分支和約束和分段線性網絡。

**參見**
 群集分析- 降維- 特徵提取- 數據挖掘

**參考文獻**

**擴展閱讀**
  Feature Selection for Classification: A Review date=20160314145552  (Survey,2014)-  Feature Selection for Clustering: A Review date=20160304052513  (Survey,2013)-  Tutorial Outlining Feature Selection Algorithms, Arizona State University-  JMLR Special Issue on Variable and Feature Selection date=20201109215825 -  Feature Selection for Knowledge Discovery and Data Mining date=20071130125542  (Book)-  An Introduction to Variable and Feature Selection date=20210225153802  (Survey)-  Toward integrating feature selection algorithms for classification and clustering (Survey)-  feature subset selection and subset size optimization.pdf Efficient Feature Subset Selection and Subset Size Optimizationfix-attempted=yes  (Survey, 2010)-  Searching for Interacting Features date=20120205164048 -  Feature Subset Selection Bias for Classification Learning- Y. Sun, S. Todorovic, S. Goodison,  Local Learning Based Feature Selection for High-dimensional Data Analysis date=20161018203430 , IEEE Transactions on Pattern Analysis and Machine Intelligence , vol. 32, no. 9, pp. {0}8.{/0} {1}{/1}

**外部鏈接**
  A comprehensive package for Mutual Information based feature selection in Matlab date=20191206142654  -  Infinite Feature Selection (Source Code) in Matlab date=20191206150042  -  Feature Selection Package, Arizona State University (Matlab Code)-  NIPS challenge 2003 date=20201109215105  (see also NIPS)-  Naive Bayes implementation with feature selection in Visual Basic (includes executable and source code)-  Minimum-redundancy-maximum-relevance (mRMR) feature selection program-  FEAST date=20200813210749  (Open source Feature Selection algorithms in C and MATLAB)