WOE與IV值

WOE與IV值

來自專欄機器學習養成記

原文鏈接:WOE與IV值

微信公眾號:機器學習養成記 搜索添加微信公眾號:chenchenwings


計算WOE和IV是評分卡模型的一個重要環節,之前沒有仔細研究過,但總覺得他們既然可以放在評分卡模型中去解決相應的問題,那應該也可以放在其他模型中解決相似的問題,所以還是很值得研究一下。下文是自己對這兩個指標的理解整理。

應用場景

WOE和IV主要用來判斷變數的預測強度,比如判斷用戶收入對用戶是否會發生逾期的預測強度。因此,兩個值的使用主要是在有監督的分類問題中,具體可以細化到如下方面:

  1. 指導變數離散化。在建模過程中,時常需要對連續變數進行離散化處理,如將年齡進行分段。但是變數不同的離散化結果(如:年齡分為[0-20]還是[0-15])會對模型產生不同影響。因此,可以根據指標所反應的預測強度,調整變數離散化結果。(對一些取值很多的分類變數,在需要時也可以對其進行再分組,實現降維。)
  2. 變數篩選。我們需要選取比較重要的變數加入模型,預測強度可以作為我們判斷變數是否重要的一個依據。

WOE(Weight of Evidence)

我們使用german credit數據來解釋WOE及後面的IV值。german credit數據集包括了用戶狀態,信用歷史,是否有工作,財產狀況等屬性,和是否發生違約標籤。

german credit中一共有1000條數據,其中700條為未違約用戶,300條為違約樣本。我們選取savings這個分類欄位進行相應解釋,以此省去之前的離散化操作。此欄位共有5個取值,具體如下:

每個取值代表一個分組,每個分組中好壞樣本數如下,其中1代表未違約,2代表違約:

統計好後,就可以進行WOE值的計算,WOE公式如下:

P(yi)代表第i組中,違約樣本占所有違約樣本的比例;

P(ni)代表第i組中,未違約樣本占所有未違約樣本比例;

y:所有違約樣本數;

n:所有未違約樣本數。

經過變換,上述式子可以變為

根據對數變換曲線,可知,WOE取值為全體實數,且在大於0部分,WOE越大表示分組中存在違約樣本可能性越大(正向作用),小於0部分,WOE越小則越表示了一種反向作用。因此,WOE反映了自變數取值對目標變數的影響。經過計算,得到相應的WOE值:

以savings變數取A61時為例,對應的woe=ln((217/300)/(386/700))。WOE沒有考慮分組中樣本佔整體樣本的比例,如果一個分組的WOE值很高,但是樣本數佔整體樣本數很低,則對變數整體預測的能力會下降。因此,我們還需要計算IV值。

IV(Information Value)

IV值考慮了分組中樣本佔整體樣本的比例,相當於WOE的加權求和。具體計算公式如下:

根據上面的公式,我們可以得到savings欄位各取值IV值及欄位總體IV值:

R語言實現

針對此特定數據集,編寫了如下函數,計算WOE與IV:

調用後得到相關結果:


推薦文章

· Bagging演算法(R語言)

·靜態爬蟲與地址經緯度轉換(python)

·特徵工程(一):前向逐步回歸(R語言)

·聚類(三):KNN演算法(R語言)

·小案例(六):預測小偷行為(python)

·ggplot2:正負區分條形圖及美化

weixin.qq.com/r/CEjawvr (二維碼自動識別)

掃描二維碼,關注我們。

如需轉載,請在開篇顯著位置註明作者和出處,並在文末放置機器學習養成記二維碼和添加原文鏈接。

快來關注我們吧!


推薦閱讀:

忘記背後,努力面前
寫給初學者的數據科學 Pipeline 指南
數據科學資源整理
運用numpy和pandas 進行數據分析的知識點
精準營銷大掃盲。破除模型迷信人人有責,有利你我他

TAG:R編程語言 | 數據分析 | 數據挖掘 |