機器學習 特徵工程之特徵選擇

傲慢的上校發表於2017-03-25

概念

首先看一下維基百科中關於特徵選擇的介紹:

在機器學習和統計學中,特徵選擇 也被稱為變數選擇、屬性選擇 或變數子集選擇 。它是指:為了構建模型而選擇相關特徵(即屬性、指標)子集的過程。

在機器學習中,每個特徵對於目標類別的影響並不相同,所以需要從特徵集中挑選出一組最具統計意義的特徵子集,把其他無用資料刪掉,達到降維的目的。

特徵選擇的目標是尋找最優特徵子集。特徵選擇能剔除不相關(irrelevant)或冗餘(redundant )的特徵,從而達到減少特徵個數,提高模型精確度,減少執行時間的目的。另一方面,選取出真正相關的特徵簡化模型,協助理解資料產生的過程。

常用的特徵選擇方法分為過濾法(Filter)、包裝法(Wrapper)和整合法(Embedded)

下面有個清晰的特徵工程的思維導圖:

這裡寫圖片描述
圖片源自(http://www.csuldw.com/2015/10/24/2015-10-24%20feature%20engineering/

過濾法(Filter)

按照發散性或者相關性對各個特徵進行評分,設定閾值或者待選擇閾值的個數,選擇特徵

方差選擇法

使用方差選擇法,先要計算各個特徵的方差,然後根據閾值,選擇方差大於閾值的特徵。預設設定下,它將移除所有方差為0的特徵,即那些在所有樣本中數值完全相同的特徵。

相關係數法

使用相關係數法,先要計算各個特徵對目標值的相關係數以及相關係數的P值。

卡方檢驗

經典的卡方檢驗是檢驗定性自變數對定性因變數的相關性。

互資訊法

經典的互資訊也是評價定性自變數對定性因變數的相關性的

filter(刷選器)優缺點

上面提到的這種特徵子集選擇的方法屬於filter(刷選器)方法,它主要側重於單個特徵跟目標變數的相關性。優點是計算時間上較高效,對於過擬合問題也具有較高的魯棒性。缺點就是傾向於選擇冗餘的特徵,因為他們不考慮特徵之間的相關性,有可能某一個特徵的分類能力很差,但是它和某些其它特徵組合起來會得到不錯的效果。

包裝法(Wrapper)

根據目標函式(通常是預測效果評分),每次選擇若干特徵,或者排除若干特徵。有逐步迴歸(Stepwise regression)、向前選擇(Forward selection)和向後選擇(Backward selection)

遞迴特徵消除法

遞迴消除特徵法使用一個基模型來進行多輪訓練,每輪訓練後,消除若干權值係數的特徵,再基於新的特徵集進行下一輪訓練

wrapper(封裝器)優缺點

封裝器用選取的特徵子集對樣本集進行分類,分類的精度作為衡量特徵子集好壞的標準,經過比較選出最好的特徵子集。常用的有逐步迴歸(Stepwise regression)、向前選擇(Forward selection)和向後選擇(Backward selection)。它的優點是考慮了特徵與特徵之間的關聯性,缺點是:當觀測資料較少時容易過擬合,而當特徵數量較多時,計算時間又會增長。

整合法(Embedded)

整合法,先使用某些機器學習的演算法和模型進行訓練,得到各個特徵的權值係數,根據係數從大到小選擇特徵。類似於Filter方法,但是是通過訓練來確定特徵的優劣。Regularization,或者使用決策樹思想,Random Forest和Gradient boosting等

基於懲罰項的特徵選擇法

使用帶懲罰項的基模型,除了篩選出特徵外,同時也進行了降維。

基於樹模型的特徵選擇法

樹模型中GBDT也可用來作為基模型進行特徵選擇

特徵選擇-有效性分析

對特徵的有效性進行分析,得到各個特徵的特徵權重,根據是否與模型有關可以分為1.與模型相關特徵權重,使用所有的特徵資料訓練出來模型,看在模型中各個特徵的權重,由於需要訓練出模型,模型相關的權重與此次學習所用的模型比較相關。不同的模型有不同的模型權重衡量方法。例如線性模型中,特徵的權重係數等。2.與模型無關特徵權重。主要分析特徵與label的相關性,這樣的分析是與這次學習所使用的模型無關的。與模型無關特徵權重分析方法包括(1)交叉熵,(2)Information Gain,(3)Odds ratio,(4)互資訊,(5)KL散度等

資料引用

本文是自己在學習過程中,閱讀部落格整理而來,大部分是直接摘取自他人內容,如有侵權,請告知刪除,有些引用內容有所遺漏,沒有註明,請告知。

http://www.csuldw.com/2015/10/24/2015-10-24%20feature%20engineering/

https://www.zhihu.com/question/29316149

相關文章