特征工程簡介
在機器學習中,從原始資訊中生成和選擇特征被稱為特征工程(Feature Engineering)或者特征抽取(Feature Extraction)。
為什麼做特征選擇
-
提升效果
讓分類更準确、泛化效果更好。因為特征的增多會大大增加分類算法求解的搜尋空間;有效避免過拟合。
-
改善性能
節省存儲和計算開銷。在資料處理和模型的訓練過程中一般有很多參數可以調節,如資料時間視窗長度、特征離散化方法、正則化系數等,讓從資料産生到得到最終模型的時間更短,速度的提升意味着可以嘗試更多的參數,更優的參數會帶來效果的改善,快速疊代是持續提升效果所需的關鍵技術能力之一。
-
更好的模型解釋性
可解釋性不僅讓我們對模型效果的穩定性有更多的把握,一個可讀懂的模型所提供的知識也能為我們的業務營運等工作提供指引和決策支援。
特征的處理
特征的分類
從特征的 取值類型 看可以分為幾類:
- 浮點數特征
- 離散值特征
-
二值特征
二值特征是我們使用最多的一類特征。離散值特征和浮點數特征都可以轉化為二值特征,這種轉化可以看做是對空間的變換和升維,讓原本線性不可分的空間變換為通過線性超平面可分的空間。
###特征的預處理
-
缺失值的處理
設定為均值、設定為衆數、設定為unknown或者舍棄該特征
-
異常值得檢測和處理
通過特征取值的分布情況可以較簡單的識别異常取值、取分為點做上下限截斷以及對特征值做分桶後做值平滑是簡單易操作的異常值處理方法
-
比例縮放
直接使用浮點數特征,如果不同特征取值範圍差異很大可能會造成嚴重的過拟合,是以需要把不同特征取值都映射到相同的範圍内。最常用的兩種方法
- min-max: x − x m i n x m a x − x m i n \frac{x-x_{min}}{x_{max}-x_{min}} xmax−xminx−xmin, x m i n x_{min} xmin是這個特征中最小值, x m a x x_{max} xmax是這個特征的最大值;
- z-score: x − μ σ \frac{x-\mu}{\sigma} σx−μ, μ \mu μ是這個特征的均值, σ \sigma σ是這個特征的方差。可以看出上面兩種标準化方法都容易收到極大或者極小的特征值影響。取自然對數做比例縮放
-
離散化
直接對浮點數特征做離散化。網際網路資料中的特征取值分布很多符合離散化方法,因為很多分布符合幂律分布。一般通過equal-frequency分桶得到的特征比用equal-interval分桶得到的特征有更好的區分性。此外還有基于資訊熵和假設檢驗的方法
-
截斷
如果取值過多放入模型可能達不到預期的效果需要截斷,一般首先會根據取值的權重排序,截斷方法有
- 簡單的取權重最大的前N個
- 從權重最大的開始往下取
- 目前後兩個取值的權重比值超過一定門檻值時終止
- 前面三種組合使用
-
二值化
通過one hot encoding可以把N個取值的離散化特征變化為N個二值特征
特征和特征間的運算
- 補集
- 笛卡爾集
- 交集
-
減運算
更為複雜的可以使用多層sigmoid函數網絡加工原始特征
特征選擇的常用方法
Filter
Filter這類方法標明一個名額來評估特征,根據名額值來對特征排序,去掉達不到足夠分數的特征。這類方法隻考慮特征X和目标Y之間的關聯,相對另兩類特征選擇方法wrapper和embedded計算開銷小。名額的選擇至關重要。
統計的角度
-
相關系數
皮爾森相關系數最為常用。樣本量不同或者取值範圍不同的特征之間的相關系數不一定可以作比較。皮爾森系數隻能衡量線性相關性,随機變量X和Y不相關不等于二者獨立,隻表示線性分類器不能單獨利用這兩個特征将樣本區分。
-
假設檢驗
将特征X和目标Y之間做獨立假設,選擇檢驗方法計算統計量,作出統計推斷。
資訊論角度
-
互資訊
M I ( X , Y ) = H ( Y ) + H ( X ) − H ( Y , X ) = − ∑ i , j P ( y j , X i ) l o g 2 P ( y j , X i ) P ( y j ) P ( x i ) MI(X,Y)=H(Y)+H(X)-H(Y,X)=-\sum_{i,j}P(y_j,X_i)log_2\frac{P(y_j,X_i)}{P(y_j)P(x_i)} MI(X,Y)=H(Y)+H(X)−H(Y,X)=−∑i,jP(yj,Xi)log2P(yj)P(xi)P(yj,Xi),函數 H ( ⋅ ) H(\cdot) H(⋅)表示資訊負熵,函數 P ( ⋅ ) P(\cdot) P(⋅)表示機率
-
資訊增益
I G ( Y , X ) = H ( Y ) − H ( Y ∣ X ) IG(Y,X)=H(Y)-H(Y|X) IG(Y,X)=H(Y)−H(Y∣X)
- 最小描述長度
Wrapper
wrapper和filter不同,不僅考慮特征X和目标Y之間的關聯性,還從添加這個特征後模型最終的表現來評估特征的好壞。wrapper需要標明一種評估模型效果的名額,如AUC、MAE、MSE。加入我們有N個特征,出去空集外這N個特征可以組成 2 N − 1 2^N-1 2N−1個集合,為了減少算法開銷,考慮前向特征選擇和後向特征選擇這樣的貪心政策。
離線評估救過是重要的參考名額,實際應用還是通過A/B測試實驗來判斷特征的效果,線上線下評估的一緻性和影響因素是另一個值得研究的問題
Embedded
filter和wrapper方法和算法本身的實作無關,可以與各種算法結合使用,而embedded特征選擇與算法本身緊密結合。在模型訓練過程中完成特征的選擇,例如決策樹算法每次都優先選擇分類能力最強的特征;邏輯回歸的優化目标函數在對數似然的基礎上加上對權重L1或L2等懲罰項會讓信号弱的特征權重減小至0
一些優化算法天然就适合在每步判斷一個次元特征的好壞,是以可以在學習器設計時融合特征選擇功能。
小結
過濾式簡單快速,可以知道特征的預處理和特征初選;嵌入式是學習器本身具備的能力
來源特征選擇-簡介