天天看點

torch 變量_機器學習-變量篩選之IV值和WOE

1、IV值的用途

IV,即資訊價值(Information Value),也稱資訊量。

目前還隻是在對LR模組化時用到過這兩個關鍵名額,當我們使用決策樹時可以通過限制樹的深度間接篩選掉一些對于目前任務貢獻比較小的變量, 而LR則是給多少變量就使用多少變量(L2正則下)。通常我們為了保證模型的有效性以及資料的全面性,在特征工程中會盡可能多的提供特征變量,包括衍生變量,這些衍生變量不會全部進入模型進行訓練,否則模型會因為過多相關變量顯得不穩定,也會增加運算的複雜性。那麼應該如何選擇什麼變量可以進入模型呢?一般來說有主要根據5點:

1)變量的預測能力(貢獻值)

2)變量的魯棒性(穩定性)

3)變量的可解釋性

4)變量的可行性

5)變量的相關性

IV值就是用來

衡量變量預測能力

的,IV值越大,表示該變量的預測能力越強。類似的名額還有資訊增益、基尼系數等。

2、IV值的計算

為了介紹IV的計算方法,我們首先需要認識和了解另一個概念——WOE,因為IV的計算是以WOE為基礎的。

2.1 WOE的概念及計算

WOE,即證據權重(Weight of Evidence),WOE 是對原始自變量的一種編碼形式。要對一個變量進行 WOE 編碼,需要首先把這個變量進行分組處理(也叫離散化、分箱),分組後,對于第i組,WOE的計算公式如下:

torch 變量_機器學習-變量篩選之IV值和WOE
torch 變量_機器學習-變量篩選之IV值和WOE
是該組中響應客戶在該組中的比例;
torch 變量_機器學習-變量篩選之IV值和WOE
是該組中未響應客戶在該組中的比例;
torch 變量_機器學習-變量篩選之IV值和WOE
是該組中響應客戶資料量;
torch 變量_機器學習-變量篩選之IV值和WOE
是該組中該組中未響應客戶資料量;
torch 變量_機器學習-變量篩選之IV值和WOE
是該組中響應客戶總資料量;
torch 變量_機器學習-變量篩選之IV值和WOE
是該組中未響應客戶總資料量。響應客戶指正樣本,未響應客戶指負樣本。

以上公式表示,WOE實際上是“目前分組中響應客戶占所有響應客戶的比例”和“目前分組中沒有響應的客戶占所有沒有響應的客戶的比例”的差異。

對這個公式做一個簡單變換,可以得到:

torch 變量_機器學習-變量篩選之IV值和WOE

變換以後含義更明顯,可以了解為

目前組中正負樣本的比值,與所有樣本中正負樣本比值的差異

。這個差異是用這兩個比值的比值,再取對數來表示的。差異越大,WOE越大,這個分組裡的樣本響應的可能性就越大,差異越小,WOE越小,這個分組裡的樣本響應的可能性就越小。WOE可能為負,但其絕對值越大,對于分類貢獻越大。當分箱中正負的比例等于随機(大盤)正負樣本的比值時,說明這個分箱沒有預測能力,即WOE=0。

2.2 IV值的計算

對于一個分組後的變量,第i組的WOE已經介紹過,同樣,對于分組i,也會有一個對應的IV值,計算公式如下:

torch 變量_機器學習-變量篩選之IV值和WOE

IV值在WOE的基礎上保證了結果非負。

根據變量在各分組上的IV值,得到整個變量的IV值為:

torch 變量_機器學習-變量篩選之IV值和WOE
torch 變量_機器學習-變量篩選之IV值和WOE
為變量分組個數

WOE可能為負值,IV值不可能為負,根據IV值選擇變量後,用WOE替換變量各分組的值進入模型。

3、如何根據IV值評估變量預測能力

torch 變量_機器學習-變量篩選之IV值和WOE
一般我們選擇 IV值大于0.02的那些變量進入模型。 如果IV值大于 0.5 ,改變量就是屬于過預測變量,通常被選座分群變量,将樣本拆分成多個群體,針對不同的群體分别開發模型。

4、關于IV和WOE的進一步思考

4.1 為什麼用IV而不是直接用WOE

從上面的内容來看,變量各分組的WOE和IV都隐含着這個分組對目标變量的預測能力這樣的意義。那我們為什麼不直接用WOE相加或者絕對值相加作為衡量一個變量整體預測能力的名額呢?

IV和WOE的差别在于IV在WOE基礎上乘以的那個(pyi-pni),我們暫且用pyn來代表這個值。

第一個原因,當我們衡量一個變量的預測能力時,我們所使用的名額值不應該是負數。從這個角度講,乘以pyn這個系數,保證了變量每個分組的結果都是非負數,可以驗證一下,當一個分組的WOE是正數時,pyn也是正數,當一個分組的WOE是負數時,pyn也是負數,而當一個分組的WOE=0時,pyn也是0。當然,上面的原因不是最主要的,因為其實WOE的絕對值也可以完全避免負數的出現。

更主要的原因,也就是第二個原因是,乘以pyn後,展現出了變量目前分組中個體的數量占整體個體數量的比例,對變量預測能力的影響。即當各分組樣本分布不均勻時對其預測能力的影響。

假設一個營銷響應模型中,有變量A,其取值隻有兩個:0,1,資料如下:

torch 變量_機器學習-變量篩選之IV值和WOE

從上表可以看出,當變量A取值1時,其響應比例達到了90%,非常的高,但是我們能否說變量A的預測能力非常強呢?不能。為什麼呢?原因就在于,A取1時,響應比例雖然很高,但這個分組的客戶數太少了,占的比例太低了。雖然,如果一個客戶在A這個變量上取1,那他有90%的響應可能性,但是一個客戶變量A取1的可能性本身就非常的低。是以,對于樣本整體來說,變量的預測能力并沒有那麼強。我們分别看一下變量各分組和整體的WOE,IV。

torch 變量_機器學習-變量篩選之IV值和WOE

從這個表我們可以看到,變量取1時,響應比達到90%,對應的WOE很高,但對應的IV卻很低,原因就在于IV在WOE的前面乘以了一個系數,而這個系數很好的考慮了這個分組中樣本占整體樣本的比例,比例越低,這個分組對變量整體預測能力的貢獻越低。相反,如果直接用WOE的絕對值加和,會得到一個很高的名額,這是不合理的。

4.2 IV的其他情況以及處理方式

1)如果IV很小不一定是變量的預測能力很差,如4.1所述,如果某個變量飽和度很低,或者分組區分明顯的組别所占比例很小,那麼 IV 也會響應較小

解決方法:嘗試重新對變量分組後檢視IV值

2)當樣本中為0正例或0負例時,時 IV 值是+∞,這兩個極端都是沒有意義的,不能與正常 iV進行比較;

解決方法: 1.如果可能,直接把這個分組做成一個規則,作為模型的前置條件或補充條件;2.重新對變量進行離散化或分組,使每個分組的響應比例都不為0且不為100%,尤其是當一個分組個體數很小時(比如小于100個),強烈建議這樣做,因為本身把一個分組個體數弄得很小就不是太合理。3.如果上面兩種方法都無法使用,建議人工把該分組的響應數和非響應的數量進行一定的調整。如果響應數原本為0,可以人工調整響應數為1,如果非響應數原本為0,可以人工調整非響應數為1.

3)每個變量分組内響應和未響應的比例與樣本整體的響應和未響應的比例差異越大,iV 值越大,當其相等時IV值為0;

4) 除非分組規則改變,組間的先後排序和目标變量的對調都不會影響IV 值;

5) WOE可以給變量的每個分組進行指派,指派過後的邏輯回歸模型系數應該全部為正數,這是因為 WOE 值已經考慮了該組的正負貢獻。

5、python代碼

def