數據挖掘中的WOE 以及 IV

1.IV的用途


IV的全稱是Information Value,中文意思是信息價值,或者信息量。

我們在用邏輯迴歸、決策樹等模型方法構建分類模型時,經常需要對自變量進行篩選。比如我們有200個候選自變量,通常情況下,不會直接把200個變量直接放到模型中去進行擬合訓練,而是會用一些方法,從這200個自變量中挑選一些出來,放進模型,形成入模變量列表。那麼我們怎麼去挑選入模變量呢?

挑選入模變量過程是個比較複雜的過程,需要考慮的因素很多,比如:變量的預測能力,變量之間的相關性,變量的簡單性(容易生成和使用),變量的強壯性(不容易被繞過),變量在業務上的可解釋性(被挑戰時可以解釋的通)等等。但是,其中最主要和最直接的衡量標準是變量的預測能力。

“變量的預測能力”這個說法很籠統,很主觀,非量化,在篩選變量的時候我們總不能說:“我覺得這個變量預測能力很強,所以他要進入模型”吧?我們需要一些具體的量化指標來衡量每自變量的預測能力,並根據這些量化指標的大小,來確定哪些變量進入模型。IV就是這樣一種指標,他可以用來衡量自變量的預測能力。類似的指標還有信息增益、基尼係數等等。


2.對IV的直觀理解


從直觀邏輯上大體可以這樣理解“用IV去衡量變量預測能力”這件事情:我們假設在一個分類問題中,目標變量的類別有兩類:Y1,Y2。對於一個待預測的個體A,要判斷A屬於Y1還是Y2,我們是需要一定的信息的,假設這個信息總量是I,而這些所需要的信息,就蘊含在所有的自變量C1,C2,C3,……,Cn中,那麼,對於其中的一個變量Ci來說,其蘊含的信息越多,那麼它對於判斷A屬於Y1還是Y2的貢獻就越大,Ci的信息價值就越大,Ci的IV就越大,它就越應該進入到入模變量列表中。


3.IV的計算


前面我們從感性角度和邏輯層面對IV進行了解釋和描述,那麼回到數學層面,對於一個待評估變量,他的IV值究竟如何計算呢?爲了介紹IV的計算方法,我們首先需要認識和理解另一個概念——WOE,因爲IV的計算是以WOE爲基礎的。


3.1WOE


WOE的全稱是“Weight of Evidence”,即證據權重。WOE是對原始自變量的一種編碼形式。

要對一個變量進行WOE編碼,需要首先把這個變量進行分組處理(也叫離散化、分箱等等,說的都是一個意思)。分組後,對於第i組,WOE的計算公式如下:


其中,pyi是這個組中響應客戶(風險模型中,對應的是違約客戶,總之,指的是模型中預測變量取值爲“是”或者說1的個體)佔所有樣本中所有響應客戶的比例,pni是這個組中未響應客戶佔樣本中所有未響應客戶的比例,#yi是這個組中響應客戶的數量,#ni是這個組中未響應客戶的數量,#yT是樣本中所有響應客戶的數量,#nT是樣本中所有未響應客戶的數量。

從這個公式中我們可以體會到,WOE表示的實際上是“當前分組中響應客戶佔所有響應客戶的比例”和“當前分組中沒有響應的客戶佔所有沒有響應的客戶的比例”的差異。

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


變換以後我們可以看出,WOE也可以這麼理解,他表示的是當前這個組中響應的客戶和未響應客戶的比值,和所有樣本中這個比值的差異。這個差異是用這兩個比值的比值,再取對數來表示的。WOE越大,這種差異越大,這個分組裏的樣本響應的可能性就越大,WOE越小,差異越小,這個分組裏的樣本響應的可能性就越小。

關於WOE編碼所表示的意義,大家可以自己再好好體會一下。


3.2 IV的計算公式


有了前面的介紹,我們可以正式給出IV的計算公式。對於一個分組後的變量,第i 組的WOE前面已經介紹過,是這樣計算的:


同樣,對於分組i,也會有一個對應的IV值,計算公式如下:


有了一個變量各分組的IV值,我們就可以計算整個變量的IV值,方法很簡單,就是把各分組的IV相加:


其中,n爲變量分組個數。


3.3 用實例介紹IV的計算和使用


下面我們通過一個實例來講解一下IV的使用方式。


3.3.1 實例


假設我們需要構建一個預測模型,這個模型是爲了預測公司的客戶集合中的每個客戶對於我們的某項營銷活動是否能夠響應,或者說我們要預測的是客戶對我們的這項營銷活動響應的可能性有多大。假設我們已經從公司客戶列表中隨機抽取了100000個客戶進行了營銷活動測試,收集了這些客戶的響應結果,作爲我們的建模數據集,其中響應的客戶有10000個。另外假設我們也已經提取到了這些客戶的一些變量,作爲我們模型的候選變量集,這些變量包括以下這些(實際情況中,我們擁有的變量可能比這些多得多,這裏列出的變量僅僅是爲了說明我們的問題):

  • 最近一個月是否有購買;
  • 最近一次購買金額;
  • 最近一筆購買的商品類別;
  • 是否是公司VIP客戶;

假設,我們已經對這些變量進行了離散化,統計的結果如下面幾張表所示。

(1) 最近一個月是否有過購買:



(2) 最近一次購買金額:


(3) 最近一筆購買的商品類別:


(4) 是否是公司VIP客戶:



3.3.2 計算WOE和IV


我們以其中的一個變量“最近一次購買金額”變量爲例:


我們把這個變量離散化爲了4個分段:<100元,[100,200),[200,500),>=500元。首先,根據WOE計算公式,這四個分段的WOE分別爲:


插播一段,從上面的計算結果中我們可以看一下WOE的基本特點:

  • 當前分組中,響應的比例越大,WOE值越大;
  • 當前分組WOE的正負,由當前分組響應和未響應的比例,與樣本整體響應和未響應的比例的大小關係決定,當前分組的比例小於樣本整體比例時,WOE爲負,當前分組的比例大於整體比例時,WOE爲正,當前分組的比例和整體比例相等時,WOE爲0。
  • WOE的取值範圍是全體實數。

我們進一步理解一下WOE,會發現,WOE其實描述了變量當前這個分組,對判斷個體是否會響應(或者說屬於哪個類)所起到影響方向和大小,當WOE爲正時,變量當前取值對判斷個體是否會響應起到的正向的影響,當WOE爲負時,起到了負向影響。而WOE值的大小,則是這個影響的大小的體現。

好,回到正題,計算完WOE,我們分別計算四個分組的IV值:


再插播一段,從上面IV的計算結果我們可以看出IV的以下特點:

  • 對於變量的一個分組,這個分組的響應和未響應的比例與樣本整體響應和未響應的比例相差越大,IV值越大,否則,IV值越小;
  • 極端情況下,當前分組的響應和未響應的比例和樣本整體的響應和未響應的比例相等時,IV值爲0;
  • IV值的取值範圍是[0,+∞),且,噹噹前分組中只包含響應客戶或者未響應客戶時,IV = +∞。

OK,再次回到正題。最後,我們計算變量總IV值:



3.3.3 IV值的比較和變量預測能力的排序


我們已經計算了四個變量中其中一個的WOE和IV值。另外三個的計算過程我們不再詳細的說明,直接給出IV結果。

  • 最近一個月是否有過購買:0.250224725
  • 最近一筆購買的商品類別:0.615275563
  • 是否是公司VIP客戶:1.56550367

前面我們已經計算過,最近一次購買金額的IV爲0.49270645

這四個變量IV排序結果是這樣的:是否是公司VIP客戶 > 最近一筆購買的商品類別 > 最近一次購買金額 > 最近一個月是否有過購買。我們發現“是否是公司VIP客戶”是預測能力最高的變量,“最近一個月是否有過購買”是預測能力最低的變量。如果我們需要在這四個變量中去挑選變量,就可以根據IV從高到低去挑選了。


4.關於IV和WOE的進一步思考


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


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

並且,從計算公式來看,對於變量的一個分組,IV是WOE乘以這個分組響應占比和未響應占比的差。而一個變量的IV等於各分組IV的和。如果願意,我們同樣也能用WOE構造出一個這樣的一個和出來,我們只需要把變量各個分組的WOE和取絕對值再相加,即(取絕對值是因爲WOE可正可負,如果不取絕對值,則會把變量的區分度通過正負抵消的方式抵消掉):


那麼我們爲什麼不直接用這個WOE絕對值的加和來衡量一個變量整體預測能力的好壞,而是要用WOE處理後的IV呢。

我們這裏給出兩個原因。IV和WOE的差別在於IV在WOE基礎上乘以的那個,我們暫且用pyn來代表這個值。

第一個原因,當我們衡量一個變量的預測能力時,我們所使用的指標值不應該是負數,否則,說一個變量的預測能力的指標是-2.3,聽起來很彆扭。從這個角度講,乘以pyn這個係數,保證了變量每個分組的結果都是非負數,你可以驗證一下,當一個分組的WOE是正數時,pyn也是正數,當一個分組的WOE是負數時,pyn也是負數,而當一個分組的WOE=0時,pyn也是0。

當然,上面的原因不是最主要的,因爲其實我們上面提到的這個指標也可以完全避免負數的出現。

更主要的原因,也就是第二個原因是,乘以pyn後,體現出了變量當前分組中個體的數量佔整體個體數量的比例,對變量預測能力的影響。怎麼理解這句話呢?我們還是舉個例子。

假設我們上面所說的營銷響應模型中,還有一個變量A,其取值只有兩個:0,1,數據如下:


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


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


4.2 IV的極端情況以及處理方式


IV依賴WOE,並且IV是一個很好的衡量自變量對目標變量影響程度的指標。但是,使用過程中應該注意一個問題:變量的任何分組中,不應該出現響應數=0或非響應數=0的情況。

原因很簡單,當變量一個分組中,響應數=0時,


此時對應的IVi爲+∞。

而當變量一個分組中,沒有響應的數量 = 0時,


此時的IVi爲+∞。

IVi無論等於負無窮還是正無窮,都是沒有意義的。

由上述問題我們可以看到,使用IV其實有一個缺點,就是不能自動處理變量的分組中出現響應比例爲0或100%的情況。那麼,遇到響應比例爲0或者100%的情況,我們應該怎麼做呢?建議如下:

(1)如果可能,直接把這個分組做成一個規則,作爲模型的前置條件或補充條件;

(2)重新對變量進行離散化或分組,使每個分組的響應比例都不爲0且不爲100%,尤其是當一個分組個體數很小時(比如小於100個),強烈建議這樣做,因爲本身把一個分組個體數弄得很小就不是太合理。

(3)如果上面兩種方法都無法使用,建議人工把該分組的響應數和非響應的數量進行一定的調整。如果響應數原本爲0,可以人工調整響應數爲1,如果非響應數原本爲0,可以人工調整非響應數爲1.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章