IV的全稱是Information Value,中文意思是信息價值,或者信息量。ide
咱們在用邏輯迴歸、決策樹等模型方法構建分類模型時,常常須要對自變量進行篩選。好比咱們有200個候選自變量,一般狀況下,不會直接把200個變量直接放到模型中去進行擬合訓練,而是會用一些方法,從這200個自變量中挑選一些出來,放進模型,造成入模變量列表。那麼咱們怎麼去挑選入模變量呢?測試
挑選入模變量過程是個比較複雜的過程,須要考慮的因素不少,好比:變量的預測能力,變量之間的相關性,變量的簡單性(容易生成和使用),變量的強壯性(不容易被繞過),變量在業務上的可解釋性(被挑戰時能夠解釋的通)等等。可是,其中最主要和最直接的衡量標準是變量的預測能力。編碼
「變量的預測能力」這個說法很籠統,很主觀,非量化,在篩選變量的時候咱們總不能說:「我以爲這個變量預測能力很強,因此他要進入模型」吧?咱們須要一些具體的量化指標來衡量每自變量的預測能力,並根據這些量化指標的大小,來肯定哪些變量進入模型。IV就是這樣一種指標,他能夠用來衡量自變量的預測能力。相似的指標還有信息增益、基尼係數等等。spa
從直觀邏輯上大致能夠這樣理解「用IV去衡量變量預測能力」這件事情:咱們假設在一個分類問題中,目標變量的類別有兩類:Y1,Y2。對於一個待預測的個體A,要判斷A屬於Y1仍是Y2,咱們是須要必定的信息的,假設這個信息總量是I,而這些所須要的信息,就蘊含在全部的自變量C1,C2,C3,……,Cn中,那麼,對於其中的一個變量Ci來講,其蘊含的信息越多,那麼它對於判斷A屬於Y1仍是Y2的貢獻就越大,Ci的信息價值就越大,Ci的IV就越大,它就越應該進入到入模變量列表中。3d
前面咱們從感性角度和邏輯層面對IV進行了解釋和描述,那麼回到數學層面,對於一個待評估變量,他的IV值究竟如何計算呢?爲了介紹IV的計算方法,咱們首先須要認識和理解另外一個概念——WOE,由於IV的計算是以WOE爲基礎的。orm
WOE的全稱是「Weight of Evidence」,即證據權重。WOE是對原始自變量的一種編碼形式。blog
要對一個變量進行WOE編碼,須要首先把這個變量進行分組處理(也叫離散化、分箱等等,說的都是一個意思)。分組後,對於第i組,WOE的計算公式以下:排序
其中,pyi是這個組中響應客戶(風險模型中,對應的是違約客戶,總之,指的是模型中預測變量取值爲「是」或者說1的個體)佔全部樣本中全部響應客戶的比例,pni是這個組中未響應客戶佔樣本中全部未響應客戶的比例,#yi是這個組中響應客戶的數量,#ni是這個組中未響應客戶的數量,#yT是樣本中全部響應客戶的數量,#nT是樣本中全部未響應客戶的數量。數學
從這個公式中咱們能夠體會到,WOE表示的其實是「當前分組中響應客戶佔全部響應客戶的比例」和「當前分組中沒有響應的客戶佔全部沒有響應的客戶的比例」的差別。io
對這個公式作一個簡單變換,能夠獲得:
變換之後咱們能夠看出,WOE也能夠這麼理解,他表示的是當前這個組中響應的客戶和未響應客戶的比值,和全部樣本中這個比值的差別。這個差別是用這兩個比值的比值,再取對數來表示的。WOE越大,這種差別越大,這個分組裏的樣本響應的可能性就越大,WOE越小,差別越小,這個分組裏的樣本響應的可能性就越小。
關於WOE編碼所表示的意義,你們能夠本身再好好體會一下。
有了前面的介紹,咱們能夠正式給出IV的計算公式。對於一個分組後的變量,第i 組的WOE前面已經介紹過,是這樣計算的:
一樣,對於分組i,也會有一個對應的IV值,計算公式以下:
有了一個變量各分組的IV值,咱們就能夠計算整個變量的IV值,方法很簡單,就是把各分組的IV相加:
其中,n爲變量分組個數。
下面咱們經過一個實例來說解一下IV的使用方式。
假設咱們須要構建一個預測模型,這個模型是爲了預測公司的客戶集合中的每一個客戶對於咱們的某項營銷活動是否可以響應,或者說咱們要預測的是客戶對咱們的這項營銷活動響應的可能性有多大。假設咱們已經從公司客戶列表中隨機抽取了100000個客戶進行了營銷活動測試,收集了這些客戶的響應結果,做爲咱們的建模數據集,其中響應的客戶有10000個。另外假設咱們也已經提取到了這些客戶的一些變量,做爲咱們模型的候選變量集,這些變量包括如下這些(實際狀況中,咱們擁有的變量可能比這些多得多,這裏列出的變量僅僅是爲了說明咱們的問題):
假設,咱們已經對這些變量進行了離散化,統計的結果以下面幾張表所示。
(1) 最近一個月是否有過購買:
(2) 最近一次購買金額:
(3) 最近一筆購買的商品類別:
(4) 是不是公司VIP客戶:
咱們以其中的一個變量「最近一次購買金額」變量爲例:
咱們把這個變量離散化爲了4個分段:<100元,[100,200),[200,500),>=500元。首先,根據WOE計算公式,這四個分段的WOE分別爲:
插播一段,從上面的計算結果中咱們能夠看一下WOE的基本特色:
咱們進一步理解一下WOE,會發現,WOE其實描述了變量當前這個分組,對判斷個體是否會響應(或者說屬於哪一個類)所起到影響方向和大小,當WOE爲正時,變量當前取值對判斷個體是否會響應起到的正向的影響,當WOE爲負時,起到了負向影響。而WOE值的大小,則是這個影響的大小的體現。
好,回到正題,計算完WOE,咱們分別計算四個分組的IV值:
再插播一段,從上面IV的計算結果咱們能夠看出IV的如下特色:
OK,再次回到正題。最後,咱們計算變量總IV值:
咱們已經計算了四個變量中其中一個的WOE和IV值。另外三個的計算過程咱們再也不詳細的說明,直接給出IV結果。
前面咱們已經計算過,最近一次購買金額的IV爲0.49270645
這四個變量IV排序結果是這樣的:是不是公司VIP客戶 > 最近一筆購買的商品類別 > 最近一次購買金額 > 最近一個月是否有過購買。咱們發現「是不是公司VIP客戶」是預測能力最高的變量,「最近一個月是否有過購買」是預測能力最低的變量。若是咱們須要在這四個變量中去挑選變量,就能夠根據IV從高到低去挑選了。
從上面的內容來看,變量各分組的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的絕對值加和,會獲得一個很高的指標,這是不合理的。
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.