更多大數據分析、建模等內容請關注公衆號《bigdatamodeling》
By 小石頭
1、概念回顧
先簡單回顧一下WOE的含義。假設x是類別變量或分箱處理過的連續變量,含R個類別或分段,取值爲{C1, ..., Cr, ..., CR};y是目標變量,取值爲0(Good)或1(Bad)。x和y的頻數表如下:
WOE的定義如下:
變量x第r類的WOE爲:
WOE是變量x第r類中Bad與Good的比率與整個樣本中Bad與Good的比率的比值的對數,其衡量第r類對Bad和Good的比率的影響程度。WOE等於0,表示該類別中Bad與Good的比率與整體樣本中Bad與Good的比率相等,說明該類別完全沒有區分度;WOE大於0,表示該類別中Bad與Good的比率大於整體樣本中Bad與Good的比率;WOE小於0,表示該類別中Bad與Good的比率小於整體樣本中Bad與Good的比率。
2、理論推導
那麼,WOE爲何這樣計算?從上面的WOE定義可以發現,WOE編碼是有監督方法,所以計算變量x的WOE可以看做用x擬合y的優化過程。將x的WOE寫成,其中是二元虛擬變量,如果變量x取第r類,則,否則。
(1)定義如下模型:
(2)定義對數損失函數:
(3)整體樣本上的損失爲:
(4) 損失最小化,即令偏導=0:
因此,WOE是使損失最小化的編碼方式,計算WOE就是一次單變量建模過程,得到的WOE值使損失最小,即信息損失最小。實際上,常數b的不同取值會產生不同的WOE編碼值,但不影響WOE編碼的效果。而令,會使WOE的含義更容易解釋和理解。
另外,通過前述的推導可以看出,使用經過WOE編碼後的單變量擬合邏輯迴歸模型將得到變量係數爲1,截距項爲b。