1. 程式人生 > >建模常用的概念介紹1: WOE、IV

建模常用的概念介紹1: WOE、IV

為了挑選並構造出對目標變數有較高預測力的自變數,需要對變數進行WOE編碼,通過IV值的看變數的貢獻。

1、WOE(weight of Evidence 證據權重)

    1)解釋及公式

    WOE是對原始自變數的一種編碼形式。

    要對一個變數進行WOE編碼,需要首先把這個變數進行分組處理/離散化處理(等寬切割,等高切割,或者利用決策樹來切割)。分組後,對於第i組,WOE的計算公式如下:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

    其中:pyi為壞樣本佔所有壞樣本的比例,py0好樣本佔所有好樣本的比例;B為壞樣本總數,Bi為變數i對應的壞樣本個數,G為好樣本總數,Gi為變數i對應的好樣本個數 ;

    注:將模型目標變數y為1記為違約使用者(壞樣本),對於目標變數為0記為正常使用者(好樣本)


2)直觀字面理解:

    WOE表示的實際上是“當前分組中壞客戶佔所有壞客戶的比例”和“當前分組中好客戶佔所

有壞客戶的比例”的差異。轉化公式以後,也可以理解為:當前這個組中壞客戶和好客戶的比值,和所有樣本中這個比值的差異。這個差異為這兩個比值的比值,再取對數來表示的。

    WOE越大,這種差異越大,這個分組裡的樣本壞樣本可能性就越大,WOE越小,差異越小,這個分組裡的壞樣本可能性就越小。

3)WOE計算案例:

以年齡為某個自變數,由於年齡是連續型自變數,需要對其進行離散化處理,假設離散化分為5組。#bad和#good表示在這五組年齡中好樣本和壞樣本的數量分佈。 

640?wx_fmt=png&wxfrom=5&wx_lazy=1

  • 當前分組中,壞樣本比例越大,WOE值越大

  • 當前分組WOE的正負,由當前分組壞樣本和好樣本的比例,與樣本整體壞樣本和好樣本的比例的大小關係決定,當前分組的比例小於樣本整體比例時,WOE為負,當前分組的比例大於整體比例時,WOE為正,當前分組的比例和整體比例相等時,WOE為0。

  • WOE的取值範圍是全體實數。

    WOE其實描述了變數當前這個分組,對判斷個體是否屬於壞樣本所起到影響方向和大小。當WOE為正時,變數當前取值對判斷個體是否會響應起到的正向的影響,當WOE為負時,起到了負向影響。而WOE值的大小,則是這個影響的大小的體現。

4)WOE轉化優勢:提升模型的預測效果,提高模型的可理解性。

  • 標準化的功能。

    WOE編碼之後,自變數其實具備了某種標準化的性質,也就是說,自變數內部的各個取值之間都可以直接進行比較(WOE之間的比較)

  • 異常值處理。

一些極值變數,可以通過分組的WOE,變為非異常值

  • 檢查變數WOE後與違約概率的關係

一般篩選的變數WOE與違約概率都是單調的,如果出現U型,或者其他曲線形狀,則需要重新看下變數是否有問題。

  • 核查WOE變數模型的變數係數出現負值。

    如果最終模型的出來的係數出現負值,需要考慮是否出現了多重共線性的影響,或者變數計算邏輯問題。

2、IV(Information Value)資訊價值

1)為什麼要用IV

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

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

    IV就是用來衡量自變數的預測能力。類似的指標還有資訊增益、基尼係數等等。

2)如何理解IV

    假設在一個分類問題中,目標變數值為1,0。對於一個待預測的個體A,要判斷A屬於1還是0,需要知道一寫特定資訊,假設這個資訊總量是I,而這些所需要的資訊,就蘊含在所有的自變數x1,x2,x3,……,xn中,那麼,對於其中一個變數xi來說,其蘊含的資訊越多,那麼它對於判斷A屬於0還是1的貢獻就越大,xi的資訊價值就越大,xi的IV就越大,它就越應該進入到入模變數列表中。

3)IV的計算公式

IV的計算基於WOE,可以看成對WOE的加權求和

分組i的IV值計算:

總體的IV:

0?wx_fmt=png

4)IV和WOE的差別

    IV和WOE的差別,就在於IV在WOE基礎上乘以一個權重(py1-py0),這個權重也是變數篩選考慮使用IV而非WOE去篩選變數的重要。

  • woe的取值為實數,含有負數,當我們衡量一個變數的預測能力時,使用的指標的評價一般為正數,比如woe值為-0.5的時候,就不知道如何評價這個指標的好壞。而且總體的WOE值,需要單獨設立公式,而不是簡單的各個組的WOE值相加。

  • 而iv值,因為有這個(py1-py0)權重係數,保證了變數每個分組的結果都是非負數,可以驗證一下,當一個分組的WOE是正數時,權重係數也是正數,當一個分組的WOE是負數時,權重也是負數,而當一個分組的WOE=0時,權重係數也是0。

  • IV值避免了一個組樣本數很小,但Bi/Gi很大,從而WOE很大的情況。這種情況出現時,這組樣本其實對整體的解釋能力是很弱的,比如舉個極端的例子,比如py1、py0均小於0.001,但Bi/Gi很大,比如0.9的情況,這時WOE值很高,但IV值會很小。

5)IV計算案例

0?wx_fmt=png

  • 對於變數的一個分組,這個分組的壞樣本和好樣本的比例與樣本整體壞樣本和好樣本的比例相差越大,IV值越大,否則,IV值越小;

  • 極端情況下,當前分組的好樣本和壞樣本的比例和樣本整體的壞樣本和好樣本的比例相等時,IV值為0;

  • IV值的取值範圍是[0,+∞),且,噹噹前分組中只包含好樣本或壞樣本時,IV = +∞,此種情況無任何意義

IV值為+∞處理:

IV其實有一個缺點,就是不能自動處理變數的分組中出現響應比例為0或100%的情況。遇到壞樣本比例為0或者100%的情況,建議如下:

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

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

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

6)IV資訊量大小與指標判別力有一個經驗的規則:

  • 若IV資訊量取值小於0.02,認為該指標對因變數沒有預測能力,應該被剔除;

  • 若IV資訊量取值在0.02與0.1之間,認為該指標對因變數有較弱的預測能力;

  • 若IV資訊量取值在0.1與0.3之間,認為該指標對因變數的預測能力一般;

  • 若IV資訊量取值大於0.3,認為該指標對因變數有較強的預測能力。

  • 實際應用時,可以保留IV值大於0.1的指標。

網路參考文章:

http://blog.csdn.net/kevin7658/article/details/50780391

http://blog.sina.com.cn/s/blog_8813a3ae0102uyo3.html

    分組變數常規的處理方式除了WOE,還有做dummy變數(啞編碼):

3、啞編碼

    dummy變數是比較順其自然的操作,例如某個自變數m有3種取值分別為m1,m2,m3,那麼可以構造兩個dummy變數M1、M2:當m取m1時,M1取1而M2取0;當m取m2時,M1取0而M2取1;當m取m3時,M1取0且M2取0。這樣,M1和M2的取值就確定了m的取值。之所以不構造M3變數,是基於資訊冗餘和多重共線性之類的考慮。但是,構造dummy變數也存在一些缺點,例如無法對自變數的每一個取值計算其信用得分,並且迴歸模型篩選變數時可能出現某個自變數被部分地捨棄的情況。

相關推薦

Glide 系列-1預熱Glide 的常用配置方式及其原理

在接下來的幾篇文章中,我們會對 Android 中常用的圖片載入框架 Glide 進行分析。在本篇文章中,我們先通過介紹 Glide 的幾種常用的配置方式來了解 Glide 的部分原始碼。後續的文中,我們會對 Glide 的原始碼進行更詳盡的分析。 對於 Glide,相信多數 Android 開發者並不陌生

C++ primer 13.1拷貝賦值和析構

拷貝構造函數 阻止 需要 函數 static let default 個數 調用 1.拷貝構造函數 基本形式:Name(const Name&) 對於類類型成員,會調用拷貝構造函數拷貝,對於內置類型成員就直接拷貝。對於數組,合成的拷貝構造函數會逐個拷貝都另一

資料結構連結串列題目1查詢插入刪除基本操作 解析

1.連結串列的查詢插入刪除 有問題的程式碼: #include<iostream> #define ok 0 #define error -1 using namespace std; class ListNode { public: int data; ListNode

Spring(概念篇)SpringSpringMVCSpringBoot以及SpringCloud的概念關係與區別(詳解)

Spring與Spring MVC Spring Spring是一個一站式的輕量級的Java開發框架 Spring是一個一站式的輕量級的Java開發框架,核心是控制反轉(IOC)和麵向切面(AOP),針對於開發的WEB層(SpringMVC)、業務層(IOC)、持久層(jdbc Te

ES6精解(1)letconst塊級作用域

let命令 ES6新增了let命令,跟var類似,都是用來宣告變數的 1.不允許重複宣告 { let a = 1; let a = 2;//報錯 } 2.不存在變數提升 { console.log(b);//報錯

常用資料結構思維分治動態規劃貪心回溯分支限界

分治:把一個複雜的問題分成兩個或更多的相同或相似的子問題,再把子問題分成更小的子問題……直到最後子問題可以簡單的直接求解,原問題的解即子問題的解的合併 http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741370.html#30

I/O介面標準(1)LVTTLLVCMOSSSTLHSTL

I/O介面標準 1.單端訊號介面標準 LVTTL和LVCMOS(JESD8-5,JESD8-B) SSTL(JESD8-8,JESD8-9B,JESD8-15) HSTL(JESD8-6) LVTTL和LVCMOS結構通常是簡單的push-

spring常用註解備忘 @Configuration@ConfigurationProperties@Bean@Qualifier

1,下面先給出這四個註解的使用場景程式碼: A,這四個註解的使用如下: /** * 卡牛徵信 */ @Configuration @ConfigurationProperties(prefix="cube.partner.conifg.kn") public clas

MariaDB ColumnStore初探(1)安裝使用及測試

  相信大家在對接BI資料報表部門有很深刻的體驗,高大上的複雜SQL關聯JOIN十幾張表在InnoDB裡跑起來,會讓你酸爽到死。它的出現正是解決這個問題,DBA能不能輕鬆愉快地玩耍,就要靠它了,“神州行我看行”。   通過本文,會讓大家都可以動手玩起來。我們的口號:接地氣! &nb

常用CSS樣式1文字樣式

#css基本語法及頁面引用 ##css基本語法 css的定義方法是: 選擇器 { 屬性:值; 屬性:值; 屬性:值;} 選擇器是將樣式和頁面元素關聯起來的名稱,屬性是希望設定的樣式屬性每個屬性有一個或多

IPFS (二)常用指令介紹1

1、基本命令 命令 介紹 add 新增一個檔案到IPFS cat 預覽檔案內容在控制檯 get

大一上英語複習漢譯英(新視野大學英語讀寫教程1第一六單元分句+註釋)

Book One Unit One 11.  Translate the  following  paragraph into  English. 孔子是中國歷史上著名的思想家、教育家、是儒家學派(Confucianism)的創始人,被尊稱為古代的“聖人”(sage)。

JAVA面試題1JDKJREJVM關係是什麼?

JDK(Java Development Kit)即為Java開發工具包,包含編寫Java程式所必須的編譯、執行等開發工具以及JRE。開發工具如:用於編譯java程式的javac命令、用於啟動JVM執行java程式的java命令、用於生成文件的javadoc命令以及用於打包的jar命令等等。&nbs

RaceWeb介紹(1)基本功能

RaceWeb軟體主要用於對資料進行快速操作及WEB展示。資料庫目前可以使用firebird、sqlite、sqlserver、oracle,未來將設定為支援所有常見資料庫型別。Web伺服器使用A

python常用模組介紹之一string模組

簡介:        string模組主要用於對字串進行操作。string裡的許多特性都已經移植到str和unicode物件的方法裡去了。下面主要討論下string模組的常用方法。 函式 1.        string.atof(s) 字串轉換成浮點型 string.a

分散式系統理論基礎1 一致性2PC和3PC

狹義的分散式系統指由網路連線的計算機系統,每個節點獨立地承擔計算或儲存任務,節點間通過網路協同工作。廣義的分散式系統是一個相對的概念,正如Leslie Lamport所說[1]:What is a distributed systeme. Distribution is in the eye of the b

十九面向物件基礎1__init__和__str__小例子(烤地瓜相關程式;存放傢俱建立了房子類建立了床類沙發類)

一、類和物件的關係 面向物件程式設計的2個非常重要的概念:類和物件 物件是面向物件程式設計的核心,在使用物件的過程中,為了將具有共同特徵和行為的一組物件抽象定義,提出了另外一個新的概念——類 類就

大一上英語複習英譯漢(新視野大學英語讀寫教程1第一六單元分句+註釋)

Book One Unit One 10.Translate  the  following  paragraph into  Chinese. Socrates was  a  classical Greek  philosopher  who  is  cred