[機器學習]特徵選擇(feature selection)

特徵選擇與降維差異

知乎回答的說明:
數據降維,一般說的是維數約簡(Dimensionality reduction)。它的思路是:將原始高維特徵空間裡的點向一個低維空間投影,新的空間維度低於原特徵空間,所以維數減少了。在這個過程中,特徵發生了根本性的變化,原始的特徵消失了(雖然新的特徵也保持了原特徵的一些性質)。
而特徵選擇,是從 n 個特徵中選擇 d (d

特徵選擇(feature selection)

特徵選擇scikit-learning文檔
特徵選擇是從所有特徵中選出一組相關的特徵(特徵子集),而去掉無關的特徵,而這個過程可以看做是一個降維過程。

包裝類方法(Wrapper)使用預測模型給特徵子集打分。每個新子集都被用來訓練一個模型,然後用驗證數據集來測試。通過計算驗證數據集上的錯誤次數(即模型的錯誤率)給特徵子集評分。由於包裝類方法為每個特徵子集訓練一個新模型,所以計算量很大。不過,這類方法往往能為特定類型的模型找到性能最好的特徵集。

過濾類方法(Filter)採用代理指標,而不根據特徵子集的錯誤率計分。所選的指標算得快,但仍然能估算出特徵集好不好用。常用指標包括互信息、逐點互信息、皮爾遜積矩相關係數、每種分類/特徵的組合的幀間/幀內類距離或顯著性測試評分。過濾類方法計算量一般比包裝類小,但這類方法找到的特徵子集不能為特定類型的預測模型調校。由於缺少調校,過濾類方法所選取的特徵集會比包裝類選取的特徵集更為通用,往往會導致比包裝類的預測性能更為低下。不過,由於特徵集不包含對預測模型的假設,更有利於暴露特徵之間的關係。許多過濾類方法提供特徵排名,而非顯式提供特徵子集。要從特徵列表的哪個點切掉特徵,得靠交叉驗證來決定。過濾類方法也常常用於包裝方法的預處理步驟,以便在問題太複雜時依然可以用包裝方法。

嵌入類方法(Embedded)包括了所有構建模型過程中用到的特徵選擇技術。這類方法的典範是構建線性模型的LASSO方法。該方法給回歸係數加入了L1懲罰,導致其中的許多參數趨於零。任何回歸係數不為零的特徵都會被LASSO算法「選中」。 LASSO的改良算法有Bolasso和FeaLect。 Bolasso改進了樣本的初始過程。 FeaLect根據回歸係數組合分析給所有特徵打分。另外一個流行的做法是遞歸特徵消除(Recursive Feature Elimination)算法,通常用於支持向量機,通過反覆構建同一個模型移除低權重的特徵。這些方法的計算複雜度往往在過濾類和包裝類之間。

Filter


不限離散或連續target

方差選擇法

使用方差選擇法,先要計算各個特徵的方差,然後根據閾值,選擇方差大於閾值的特徵,缺點是有些特徵有做standardization或者特徵方差大小根本與target無關。

F檢驗

F檢驗(F-test)

互信息和最大信息係數(MIC)

http://www.omegaxyz.com/2018/01/18/mic/
https://www.deeplearn.me/1466.html
https://scikit-learn.org/stable/auto_examples/feature_selection/plot_f_test_vs_mi.html#sphx-glr-auto-examples-feature-selection-plot-f-test-vs-mi-py


回歸問題

相關係數法

皮爾遜積差相關係數衡量兩個等距尺度或等比尺度變數之相關性。是最常見的,也是學習統計學時第一個接觸的相關係數。


分類問題

卡方檢驗

卡方檢驗
test用來檢測可以用來做特徵選擇,它能夠檢驗兩個分類變量之間是否是獨立無關的,通常檢測X特徵與Y標籤的相關性,CHI值越大,說明兩個變量相關性越高,只需要計算,並按照 的值從大到小將特徵排序,然後選擇閾值,大於閾值的特徵留下,小於閾值的特徵刪除。這樣就篩選出一組特徵子集了。


Wrapper

遞歸特徵消除(Recursive feature elimination)

Recursive feature elimination

Embedded

使用SelectFromModel選擇特徵

regularization
Feature selection using SelectFromModel

將特徵選擇過程融入pipeline

Feature selection as part of a pipeline

你可能感兴趣的:([機器學習]特徵選擇(feature selection))