金融风控实战——有监督分箱
卡方分箱
??分箱的方法有很多,卡方分箱屬于其中一種,屬于有監督系列的。卡方分箱正是一種基于卡方檢驗的分箱方法,更具地說是基于上面提到的第二種應用,獨立性檢驗,來實現核心分箱功能的。
??卡方分箱算法簡單來說,有兩個部分組成:1)初始化步驟;2)合并。
小栗子:
- 計算所有相鄰分箱的卡方值:也就是說如果有1,2,3,4個分箱,那么就需要綁定相鄰的兩個分箱,共三組:12,23,34。然后分別計算三個綁定組的卡方值。
- 從計算的卡方值中找出最小的一個,并把這兩個分箱合并:比如,23是卡方值最小的一個,那么就將2和3合并,本輪計算中分箱就變為了1,23,4。
??背后的基本思想是:如果兩個相鄰的區間具有非常類似的類分布,那么這兩個區間可以合并。否則,它們應該分開。低卡方值表明它們具有相似的類分布。(卡方值衡量推斷值和觀察值之間的偏離程度)
??停止條件:1)卡方停止的閾值 ,2)分箱數目的限制
卡方分箱公式理解:
χ2=∑i=1m∑j=1k(Aij?Eij)2Eij\chi^{2}=\sum_{i=1}^{m} \sum_{j=1}^{k} \frac{\left(A_{i j}-E_{i j}\right)^{2}}{E_{i j}} χ2=i=1∑m?j=1∑k?Eij?(Aij??Eij?)2?
- m=2:表示相鄰的兩個分箱數目
- k:表示目標變量的類別數,比如目標是網貸違約的好和壞,那么k=2。k也可以是多類,大于2。
- AijA_{ij}Aij?:實際頻數,即第i個分箱的j類頻數
- EijE_{ij}Eij?:期望頻數
其中,期望頻數的公式如下,可根據P(AB)=P(A)P(B)推導出來:Eij=Ri?CjNE_{i j}=\frac{R_{i} * C_{j}}{N} Eij?=NRi??Cj??RiR_{i}Ri?、CjC_{j}Cj?:分別是實際頻數整列和整行的加和
舉個例子說明一下這個公式是如何用的,對于相鄰兩個分箱的卡方值計算:
??實際頻數和期望頻數都有了,帶入卡方公式求解,過程如下:χ2=∑i=1m∑j=1k(Aij?Eij)2Eij=[(A11?E11)2E11+(A12?E12)2E12]+[(A21?E21)2E21+(A22?E22)2E22]\begin{aligned} \chi^{2} &=\sum_{i=1}^{m} \sum_{j=1}^{k} \frac{\left(A_{i j}-E_{i j}\right)^{2}}{E_{i j}} \\ &=\left[\frac{\left(A_{11}-E_{11}\right)^{2}}{E_{11}}+\frac{\left(A_{12}-E_{12}\right)^{2}}{E_{12}}\right]+\left[\frac{\left(A_{21}-E_{21}\right)^{2}}{E_{21}}+\frac{\left(A_{22}-E_{22}\right)^{2}}{E_{22}}\right] \end{aligned} χ2?=i=1∑m?j=1∑k?Eij?(Aij??Eij?)2?=[E11?(A11??E11?)2?+E12?(A12??E12?)2?]+[E21?(A21??E21?)2?+E22?(A22??E22?)2?]?
??如果計算結果是所有卡方值中最小的,說明:這組中兩個分箱具有最相似的類分布,因此把它們合并。
??如果性別和化妝與否沒有關系,四個格子應該是括號里的數(期望值,用極大似然估計55=100*110/200,其中110/200可理解為化妝的概率,乘以男人數100,得到男人化妝概率的似然估計),這和實際值(括號外的數)有差距,理論和實際的差距說明這不是隨機的組合。
應用擬合度公式
∑i=1k(fi?npi)2npi=(95?55)255+(15?55)255+(85?45)245+(5?45)245=129.3\sum_{i=1}^{k} \frac{\left(f_{i}-n p_{i}\right)^{2}}{n p_{i}}=\frac{(95-55)^{2}}{55}+\frac{(15-55)^{2}}{55}+\frac{(85-45)^{2}}{45}+\frac{(5-45)^{2}}{45}=129.3 i=1∑k?npi?(fi??npi?)2?=55(95?55)2?+55(15?55)2?+45(85?45)2?+45(5?45)2?=129.3
決策樹分箱
??決策樹分箱的原理就是用想要離散化的變量單變量用樹模型擬合目標變量,例如直接使用sklearn提供的決策樹(是用cart決策樹實現的),然后將內部節點的閾值作為分箱的切點。
??補充,cart決策樹和ID3、C4.5決策樹不同,cart決策樹對于離散變量的處理其實和 連續變量一樣,都是將特征的所有取值從小到大排序,然后取兩兩之間的均值,然后遍歷所有這些均值,然后取gini系數最小的點作為閾值進行劃分數據集。并且該特征后續還可參與劃分。
??這里需要說明一下:cart的決策樹是一顆二叉樹,所以對于離散變量處理時會遍歷所有值,然后取一個作為一類,剩下的作為另一類,這樣建樹的結果就是一顆二叉樹;但在sklearn包并沒有實現對離散屬性的單獨處理,所以我們傳入的離散屬性值也會被當成連續值去處理?!皊cikit-learn uses an optimised version of the CART algorithm; however, scikit-learn implementation does not support categorical variables for now.”
總結
以上是生活随笔為你收集整理的金融风控实战——有监督分箱的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 金融风控实战——迁移学习
- 下一篇: 特征衍生与特征筛选