*特征工程是一個復雜活,本人認為它一般包括以下幾個過程:特征初篩、特征衍生(加工)、特征選擇;
特征篩選是一個精細活,需要考慮很多因素,比如:預測能力、相關性、穩定性、合規性、業務可解釋性等等。
案例實踐代碼:https://github.com/iihcy/Credit_ACard
從廣義上,特征篩選可從業務指標和技術指標兩大類出發:
1.業務指標包括:
1). 合規性:用以加工變量的數據源是否符合國家法律法規?是否涉及用戶隱私數據?例如,如果某塊爬蟲數據被監管,那么相關變量的區分度再好,我們也只能棄用。
2). 可得性:數據未來是否能繼續采集?這就涉及產品流程設計、用戶授權協議、合規需求、模型應用環節等諸多方面。例如,如果產品業務流程改動而導致某個埋點下線,那么相關埋點行為變量只能棄用。又比如,如果需要做額度授信模型,那么只能利用在額度階段能采集到的實時數據,這就需要提前確認數據采集邏輯。
3). 穩定性:一方面,數據源采集穩定是變量穩定性的基本前提。例如,外部數據常會因為政策性、技術性等原因導致接入不穩定,這就需要做好數據緩存,或者模型降級機制。另一方面,變量取值分布變化是導致不穩定的直接原因。我們將會采取一些技術指標展開分析,下文將會介紹。
4). 可解釋性:需要符合業務可解釋性。如果變量的業務邏輯不清晰,那么我們寧可棄之。同時,這也是保證模型可解釋性(參數 + 變量)的前提。
5). 邏輯性:也就是因果邏輯,特征變量是因,風控決策是果。如果某個變量是風控系統決策給出的,那么我們就不能入模。例如,用戶歷史申貸訂單的利率是基於上一次風控系統決策的結果,如果將“用戶歷史申貸訂單的利率”作為變量,那么在實際使用時就會有問題。
6). 可實時上線:模型最終目的是為了上線使用。如果實時變量不支持加工,那么對應的離線變量就只能棄之。例如,某個離線變量在統計時限定觀察期為180天,但線上只支持觀察期為90天,那么就不可用。對於不熟悉線上變量加工邏輯的新手,往往容易踩坑而導致返工。
2.技術指標包括:缺失率、變異系數、穩定性、信息量、特征重要性、變量聚類、線性相關性、多重共線性、逐步回歸、P-Vaule顯著性檢驗,以及特征選擇系列算法等;
2.1 基於缺失率(Missing Rate)
1)功能:統計變量缺失率,並計算缺失率的均值、標准差。
2)指標:缺失率 = 未覆蓋樣本數 / 總樣本數 × 100%
3)業務理解:變量缺失率越高,可利用價值越低。缺失率變化不穩定的變量,尤其是缺失率趨勢在升高,代表未來數據源采集率下降,不建議采用。數據源是特征變量的基礎,數據源不穩定,直接導致模型穩定性變差。
2. 基於變異系數(Coefficient of Variation,CV)
1)功能:基於數據分布EDD,選擇某個指標(如均值mean)計算變異系數CV,用來衡量變量分布的穩定性,再設置閾值進行篩選。
2)指標:變異系數 CV =( 標准偏差 SD / 平均值Mean )× 100%
3)業務理解:變異系數越小,代表波動越小,穩定性越好。缺點在於CV沒有統一的經驗標准。
3. 基於穩定性(Population Stability Index,PSI)
1)功能:以訓練集(INS)分布為期望分布,計算變量的群體穩定性指標PSI,再根據PSI的經驗閾值進行篩選。
2)指標:psi計算公式;
3)業務理解:需分申請層、放款層,分別評估變量穩定性。通常會選擇0.1作為閾值,只要任意一個不滿足穩定性要求就棄用。PSI無法反映很多細節原因,比如分布是右偏還是左偏。此時需要從EDD上進行分析。
4. 基於信息量(Information Value,IV)
1)功能:統計變量的IV,再根據IV的經驗閾值來篩選。
2)指標:IV。可參考《WOE與IV指標的深入理解應用》
3)業務理解:用以評估變量的預測能力。通常情況下,IV越高,預測能力越強。但IV過高時,我們就要懷疑是否發生信息泄漏(leakage)問題,也就是在自變量X中引入了Y的信息。
5. 基於特征重要性
1)功能:根據樹模型訓練后給出的特征重要性,一般選擇累積重要性Top 95%的變量。若要為降低一次訓練所導致的隨機性影響,可綜合多次結果來篩選。
2)指標:特征重要性。
XGBoost實現中Booster類get_score方法輸出特征重要性,其中importance_type參數支持三種特征重要性的計算方法:weight、gain、cover;
3)業務理解:在特征變量特別多的時候,可用於快速篩選特征。從機器學習可解釋性角度而言,特征重要性只具有全局可解釋性,無法對單個case給出解釋。
6. 變量聚類(Variable Cluster,VarClus)
功能:列聚類,將所有變量進行層次聚類,再根據聚類結果,剔除IV相對較低的變量。
7. 基於線性相關性(Linear Correlation)
1)功能:計算變量的線性相關性,相關性較高的多個變量里,保留IV較高的變量。
2)指標:皮爾遜相關系數(Pearson Correlation Coefficient),系數的取值為[-1, 1],兩變量相關系數越接近0,說明線性相關性越弱;越接近1或-1,說明線性相關性越強。
3)業務理解:邏輯回歸作為一種線性模型,其基礎假設是:自變量 (x1, x2) 之間應相互獨立。當兩變量間的相關系數大於閾值時(一般閾值設為0.6),剔除IV值較低的變量。
8. 基於多重共線性(Multicollinearity)
1)功能:計算變量的方差膨脹因子(Variance Inflation Factor,VIF),適用於線性模型,再根據閾值剔除VIF較高的變量。
2)指標:通常用VIF衡量一個變量和其他變量的多重共線性。
3)業務理解:VIF取值的業務含義為:
若VIF < 3,說明基本不存在多重共線性問題
若VIF > 10,說明問題比較嚴重。
9. 基於逐步回歸(stepwise)
- 前向選擇(forward selection):逐步加入變量,計算指標進行評估,若不合格則不加入,直到評估完所有變量。
- 后向選擇(backward selection):初始時加入所有變量,根據指標逐漸剔除不合格的變量。
- 逐步選擇(stepwise):將向前選擇和向后選擇的結合,逐步放入最優的變量、移除最差的變量。
10. 基於P-Vaule顯著性檢驗
1)功能:用於檢驗自變量X與因變量Y之間的相關性,可剔除P值大於0.05的變量。
2)指標:P-Vaule。
3)業務理解:根據邏輯回歸參數估計表,剔除P值大於0.05的變量。
11.特征選擇系列算法
- 過濾式:互信息(MI)、最大信息系數(MIC)、信噪比(IR)等
- 封裝式:BPSO-SVM等,這個不常用;
- 嵌入式:lasso、K-split lasso、iter_lasso等;
- 集成式:多個特征選擇方法結果集成,可解決不穩定的問題;
- 其它:也可多種方法混合成一種新的特征選擇方法,如:過濾式+嵌入式的模式等;