99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀數(shù)據(jù)挖掘模型中的IV和WOE詳解
數(shù)據(jù)挖掘模型中的IV和WOE詳解
2018-02-25
收藏

數(shù)據(jù)挖掘模型中的IV和WOE詳解

1.IV的用途

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

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

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

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

2.對IV的直觀理解

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

3.IV的計算

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

3.1WOE

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

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

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

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

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

1470024210-1706-

變換以后我們可以看出,WOE也可以這么理解,他表示的是當(dāng)前這個組中響應(yīng)的客戶和未響應(yīng)客戶的比值,和所有樣本中這個比值的差異。這個差異是用這兩個比值的比值,再取對數(shù)來表示的。WOE越大,這種差異越大,這個分組里的樣本響應(yīng)的可能性就越大,WOE越小,差異越小,這個分組里的樣本響應(yīng)的可能性就越小。

關(guān)于WOE編碼所表示的意義,大家可以自己再好好體會一下。

3.2 IV的計算公式

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

1470024210-9905-

同樣,對于分組i,也會有一個對應(yīng)的IV值,計算公式如下:

1470024210-3786-

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

1470024210-6521-

其中,n為變量分組個數(shù)。

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

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

3.3.1 實例

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

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

假設(shè),我們已經(jīng)對這些變量進行了離散化,統(tǒng)計的結(jié)果如下面幾張表所示。

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

1470024211-2925-

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

1470024211-2184-

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

1470024212-5410-

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

1470024211-4765-

3.3.2 計算WOE和IV

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

1470024212-6680-
1470024212-1114-

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

1470024212-3395-

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

當(dāng)前分組中,響應(yīng)的比例越大,WOE值越大;

當(dāng)前分組WOE的正負,由當(dāng)前分組響應(yīng)和未響應(yīng)的比例,與樣本整體響應(yīng)和未響應(yīng)的比例的大小關(guān)系決定,當(dāng)前分組的比例小于樣本整體比例時,WOE為負,當(dāng)前分組的比例大于整體比例時,WOE為正,當(dāng)前分組的比例和整體比例相等時,WOE為0。

WOE的取值范圍是全體實數(shù)。

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

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

1470024214-3220-

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

對于變量的一個分組,這個分組的響應(yīng)和未響應(yīng)的比例與樣本整體響應(yīng)和未響應(yīng)的比例相差越大,IV值越大,否則,IV值越小;

極端情況下,當(dāng)前分組的響應(yīng)和未響應(yīng)的比例和樣本整體的響應(yīng)和未響應(yīng)的比例相等時,IV值為0;V值的取值范圍是[0,+∞),且,當(dāng)當(dāng)前分組中只包含響應(yīng)客戶或者未響應(yīng)客戶時,IV = +∞。

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

1470024213-6132-

3.3.3 IV值的比較和變量預(yù)測能力的排序

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

最近一個月是否有過購買:0.250224725

最近一筆購買的商品類別:0.615275563

是否是公司VIP客戶:1.56550367

前面我們已經(jīng)計算過,最近一次購買金額的IV為0.49270645

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

4.關(guān)于IV和WOE的進一步思考

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

從上面的內(nèi)容來看,變量各分組的WOE和IV都隱含著這個分組對目標變量的預(yù)測能力這樣的意義。那我們?yōu)槭裁床恢苯佑肳OE相加或者絕對值相加作為衡量一個變量整體預(yù)測能力的指標呢?

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

1470024214-5406-

那么我們?yōu)槭裁床恢苯佑眠@個WOE絕對值的加和來衡量一個變量整體預(yù)測能力的好壞,而是要用WOE處理后的IV呢。

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

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

當(dāng)然,上面的原因不是最主要的,因為其實我們上面提到的1470024213-2405-這個指標也可以完全避免負數(shù)的出現(xiàn)。

更主要的原因,也就是第二個原因是,乘以pyn后,體現(xiàn)出了變量當(dāng)前分組中個體的數(shù)量占整體個體數(shù)量的比例,對變量預(yù)測能力的影響。怎么理解這句話呢?我們還是舉個例子。

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

1470024214-8318-

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

1470024215-2447-

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

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

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

原因很簡單,當(dāng)變量一個分組中,響應(yīng)數(shù)=0時,

1470024215-6124-

此時對應(yīng)的IVi為+∞。

而當(dāng)變量一個分組中,沒有響應(yīng)的數(shù)量 = 0時,

1470024215-8598-

此時的IVi為+∞。

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

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

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

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

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

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }