為了挑選并構(gòu)造出對目標(biāo)變量有較高預(yù)測力的自變量,需要對變量進行WOE編碼,通過IV值的看變量的貢獻。
運用場景
根據(jù)年齡段,職業(yè)篩選優(yōu)質(zhì)客戶
根據(jù)地理位置,挑選優(yōu)質(zhì)的店鋪等
根據(jù)股票信息選股等,多因子篩選等
1、WOE(weight of Evidence 證據(jù)權(quán)重)
1)解釋及公式
WOE是對原始自變量的一種編碼形式。
要對一個變量進行WOE編碼,需要首先把這個變量進行分組處理/離散化處理(等寬切割,等高切割,或者利用決策樹來切割)。分組后,對于第i組,WOE的計算公式如下:
其中:pyi為壞樣本占所有壞樣本的比例,py0好樣本占所有好樣本的比例;B為壞樣本總數(shù),Bi為變量i對應(yīng)的壞樣本個數(shù),G為好樣本總數(shù),Gi為變量i對應(yīng)的好樣本個數(shù) ;
注:將模型目標(biāo)變量y為1記為違約用戶(壞樣本),對于目標(biāo)變量為0記為正常用戶(好樣本)
2)直觀字面理解:
WOE表示的實際上是“當(dāng)前分組中壞客戶占所有壞客戶的比例”和“當(dāng)前分組中好客戶占所
有壞客戶的比例”的差異。轉(zhuǎn)化公式以后,也可以理解為:當(dāng)前這個組中壞客戶和好客戶的比值,和所有樣本中這個比值的差異。這個差異為這兩個比值的比值,再取對數(shù)來表示的。
WOE越大,這種差異越大,這個分組里的樣本壞樣本可能性就越大,WOE越小,差異越小,這個分組里的壞樣本可能性就越小。
3)WOE計算案例:
以年齡為某個自變量,由于年齡是連續(xù)型自變量,需要對其進行離散化處理,假設(shè)離散化分為5組。#bad和#good表示在這五組年齡中好樣本和壞樣本的數(shù)量分布。
當(dāng)前分組中,壞樣本比例越大,WOE值越大
當(dāng)前分組WOE的正負(fù),由當(dāng)前分組壞樣本和好樣本的比例,與樣本整體壞樣本和好樣本的比例的大小關(guān)系決定,當(dāng)前分組的比例小于樣本整體比例時,WOE為負(fù),當(dāng)前分組的比例大于整體比例時,WOE為正,當(dāng)前分組的比例和整體比例相等時,WOE為0。
WOE的取值范圍是全體實數(shù)。
WOE其實描述了變量當(dāng)前這個分組,對判斷個體是否屬于壞樣本所起到影響方向和大小。當(dāng)WOE為正時,變量當(dāng)前取值對判斷個體是否會響應(yīng)起到的正向的影響,當(dāng)WOE為負(fù)時,起到了負(fù)向影響。而WOE值的大小,則是這個影響的大小的體現(xiàn)。
4)WOE轉(zhuǎn)化優(yōu)勢:提升模型的預(yù)測效果,提高模型的可理解性。
標(biāo)準(zhǔn)化的功能。
WOE編碼之后,自變量其實具備了某種標(biāo)準(zhǔn)化的性質(zhì),也就是說,自變量內(nèi)部的各個取值之間都可以直接進行比較(WOE之間的比較)
異常值處理。
一些極值變量,可以通過分組的WOE,變?yōu)榉钱惓V?/p>
檢查變量WOE后與違約概率的關(guān)系
一般篩選的變量WOE與違約概率都是單調(diào)的,如果出現(xiàn)U型,或者其他曲線形狀,則需要重新看下變量是否有問題。
核查WOE變量模型的變量系數(shù)出現(xiàn)負(fù)值。
如果最終模型的出來的系數(shù)出現(xiàn)負(fù)值,需要考慮是否出現(xiàn)了多重共線性的影響,或者變量計算邏輯問題。
WOE沒有考慮分組中樣本占整體樣本的比例,如果一個分組的WOE值很高,但是樣本數(shù)占整體樣本數(shù)很低,則對變量整體預(yù)測的能力會下降。因此,我們還需要計算IV
2、IV(Information Value)信息價值
1)為什么要用IV
在用邏輯回歸、決策樹等構(gòu)建分類模型時,經(jīng)常需要對自變量進行篩選。比如我們有200個候選自變量,通常情況下,不會直接把200個變量直接放到模型中去進行擬合訓(xùn)練,而是會用一些方法,從這200個自變量中挑選一些出來,放進模型,形成入模變量列表。
挑選入模變量過程比較復(fù)雜,需要考慮的因素很多,比如:變量的預(yù)測能力,變量之間的相關(guān)性,變量的簡單性(容易生成和使用),變量的強壯性(不容易被繞過),變量在業(yè)務(wù)上的可解釋性(被挑戰(zhàn)時可以解釋的通)等等。但是,其中最主要和最直接的衡量標(biāo)準(zhǔn)是變量的預(yù)測能力。
IV就是用來衡量自變量的預(yù)測能力。類似的指標(biāo)還有信息增益、基尼系數(shù)等等。
2)如何理解IV
假設(shè)在一個分類問題中,目標(biāo)變量值為1,0。對于一個待預(yù)測的個體A,要判斷A屬于1還是0,需要知道一寫特定信息,假設(shè)這個信息總量是I,而這些所需要的信息,就蘊含在所有的自變量x1,x2,x3,……,xn中,那么,對于其中一個變量xi來說,其蘊含的信息越多,那么它對于判斷A屬于0還是1的貢獻就越大,xi的信息價值就越大,xi的IV就越大,它就越應(yīng)該進入到入模變量列表中。
3)IV的計算公式
IV的計算基于WOE,可以看成對WOE的加權(quán)求和
分組i的IV值計算:
總體的IV:
4)IV和WOE的差別
IV和WOE的差別,就在于IV在WOE基礎(chǔ)上乘以一個權(quán)重(py1-py0),這個權(quán)重也是變量篩選考慮使用IV而非WOE去篩選變量的重要。
woe的取值為實數(shù),含有負(fù)數(shù),當(dāng)我們衡量一個變量的預(yù)測能力時,使用的指標(biāo)的評價一般為正數(shù),比如woe值為-0.5的時候,就不知道如何評價這個指標(biāo)的好壞。而且總體的WOE值,需要單獨設(shè)立公式,而不是簡單的各個組的WOE值相加。
而iv值,因為有這個(py1-py0)權(quán)重系數(shù),保證了變量每個分組的結(jié)果都是非負(fù)數(shù),可以驗證一下,當(dāng)一個分組的WOE是正數(shù)時,權(quán)重系數(shù)也是正數(shù),當(dāng)一個分組的WOE是負(fù)數(shù)時,權(quán)重也是負(fù)數(shù),而當(dāng)一個分組的WOE=0時,權(quán)重系數(shù)也是0。
IV值避免了一個組樣本數(shù)很小,但Bi/Gi很大,從而WOE很大的情況。這種情況出現(xiàn)時,這組樣本其實對整體的解釋能力是很弱的,比如舉個極端的例子,比如py1、py0均小于0.001,但Bi/Gi很大,比如0.9的情況,這時WOE值很高,但IV值會很小。
5)IV計算案例
對于變量的一個分組,這個分組的壞樣本和好樣本的比例與樣本整體壞樣本和好樣本的比例相差越大,IV值越大,否則,IV值越??;
極端情況下,當(dāng)前分組的好樣本和壞樣本的比例和樣本整體的壞樣本和好樣本的比例相等時,IV值為0;
IV值的取值范圍是[0,+∞),且,當(dāng)當(dāng)前分組中只包含好樣本或壞樣本時,IV = +∞,此種情況無任何意義
IV值為+∞處理:
IV其實有一個缺點,就是不能自動處理變量的分組中出現(xiàn)響應(yīng)比例為0或100%的情況。遇到壞樣本比例為0或者100%的情況,建議如下:
如果可能,直接把這個分組做成一個規(guī)則,作為模型的前置條件或補充條件;
重新對變量進行離散化或分組,使每個分組的響應(yīng)比例都不為0且不為100%,尤其是當(dāng)一個分組個體數(shù)很小時(比如小于100個),強烈建議這樣做,因為本身把一個分組個體數(shù)弄得很小就不是太合理。
如果上面兩種方法都無法使用,建議人工把該分組的響應(yīng)數(shù)和非響應(yīng)的數(shù)量進行一定的調(diào)整。如果響應(yīng)數(shù)原本為0,可以人工調(diào)整響應(yīng)數(shù)為1,如果非響應(yīng)數(shù)原本為0,可以人工調(diào)整非響應(yīng)數(shù)為1.
6)IV信息量大小與指標(biāo)判別力有一個經(jīng)驗的規(guī)則:
若IV信息量取值小于0.02,認(rèn)為該指標(biāo)對因變量沒有預(yù)測能力,應(yīng)該被剔除;
若IV信息量取值在0.02與0.1之間,認(rèn)為該指標(biāo)對因變量有較弱的預(yù)測能力;
若IV信息量取值在0.1與0.3之間,認(rèn)為該指標(biāo)對因變量的預(yù)測能力一般;
若IV信息量取值大于0.3,認(rèn)為該指標(biāo)對因變量有較強的預(yù)測能力。
實際應(yīng)用時,可以保留IV值大于0.1的指標(biāo)。
參考文章:
http://blog.csdn.net/kevin7658/article/details/50780391
http://blog.sina.com.cn/s/blog_8813a3ae0102uyo3.html
分組變量常規(guī)的處理方式除了WOE,還有做dummy變量(啞編碼):
3、啞編碼
dummy變量是比較順其自然的操作,例如某個自變量m有3種取值分別為m1,m2,m3,那么可以構(gòu)造兩個dummy變量M1、M2:當(dāng)m取m1時,M1取1而M2取0;當(dāng)m取m2時,M1取0而M2取1;當(dāng)m取m3時,M1取0且M2取0。這樣,M1和M2的取值就確定了m的取值。之所以不構(gòu)造M3變量,是基于信息冗余和多重共線性之類的考慮。但是,構(gòu)造dummy變量也存在一些缺點,例如無法對自變量的每一個取值計算其信用得分,并且回歸模型篩選變量時可能出現(xiàn)某個自變量被部分地舍棄的情況
轉(zhuǎn)自:https://blog.csdn.net/pbgc396dwxjb77f2je/article/details/99687952