一文帶您了解權(quán)重證據(jù)(WoE)與信息價(jià)值(IV):數(shù)據(jù)分析的重要利器
在數(shù)據(jù)分析和建模過(guò)程中,變量的選擇和轉(zhuǎn)換對(duì)于模型的性能至關(guān)重要。在這方面,證據(jù)權(quán)重(Weight of evidence,WoE)和信息價(jià)值(Information value,IV)是兩種簡(jiǎn)單而強(qiáng)大的技術(shù),它們?cè)谠S多領(lǐng)域都有著廣泛的應(yīng)用。在信用風(fēng)險(xiǎn)領(lǐng)域、客戶忠誠(chéng)度分析等得到廣泛使用。
信息價(jià)值(IV)通常用于評(píng)估分類模型中各個(gè)特征的預(yù)測(cè)能力。它是一種用來(lái)衡量預(yù)測(cè)模型的變量(通常是分類模型)對(duì)目標(biāo)變量的影響程度的指標(biāo)。信息價(jià)值越高,表示該變量對(duì)于預(yù)測(cè)目標(biāo)變量越重要。
證據(jù)權(quán)重(WoE)通常用于衡量類別變量與目標(biāo)變量之間的關(guān)聯(lián)性,特別適用于邏輯回歸等模型。它通過(guò)比較不同類別中目標(biāo)事件的發(fā)生概率來(lái)評(píng)估每個(gè)類別對(duì)于預(yù)測(cè)目標(biāo)變量的影響程度。WOE值的正負(fù)代表了該類別對(duì)于目標(biāo)變量的“好壞”程度,越大的絕對(duì)值表示影響越顯著。
證據(jù)權(quán)重WoE
WoE是一種衡量特征X(自變量)對(duì)目標(biāo)y(因變量)的預(yù)測(cè)能力的方法。其理論最初用于風(fēng)險(xiǎn)評(píng)分分析,并通過(guò)以下公式計(jì)算:
其中,Non Event%是特定群體中事件沒(méi)有發(fā)生的分布(占比),Event%是特定群體中事件發(fā)生的分布(占比)。例如:信用風(fēng)險(xiǎn)分析中,Event%是指特定群體中發(fā)生信用違約的占比,Non Event% 是特定群體中正常的占比。或者在商品分析中,Event% 是特定群體中壞的商品分布/占比,Non Event% 是指特定群體中好的商品分布/占比。
證據(jù)權(quán)重(WoE)計(jì)算步驟:
- 對(duì)于連續(xù)變量,將數(shù)據(jù)分為 10 個(gè)部分(或更少,具體取決于分布)。
- 計(jì)算每組中事件和非事件的數(shù)量(bin)
- 計(jì)算每組中事件的百分比和非事件的百分比。
- 通過(guò)非事件百分比和事件百分比除以自然對(duì)數(shù)來(lái)計(jì)算 WOE
接下來(lái)我們以UCLA統(tǒng)計(jì)網(wǎng)站中的研究生入學(xué)申請(qǐng)的數(shù)據(jù)集為例進(jìn)行計(jì)算WoE,字段含義如下:
- admit: 二元變量,表示學(xué)生是否被錄取,其中1代表被錄取,0代表未被錄取。
- gre: 數(shù)值變量,表示學(xué)生的GRE(研究生入學(xué)考試)成績(jī)。
- gpa: 數(shù)值變量,表示學(xué)生的GPA(平均學(xué)分績(jī)點(diǎn))成績(jī)。
- rank: 數(shù)值變量,表示申請(qǐng)學(xué)生所在的本科院校排名,可能的取值范圍為1至4,其中1代表最高排名,4代表最低排名。
import pandas as pd
mydata = pd.read_csv("https://stats.idre.ucla.edu/stat/data/binary.csv")
mydata
下面是計(jì)算WoE 和IV 的過(guò)程函數(shù):
def iv_woe(data, target, bins=10, show_woe=False):
#Empty Dataframe
newDF,woeDF = pd.DataFrame(), pd.DataFrame()
#Extract Column Names
cols = data.columns
#Run WOE and IV on all the independent variables
for ivars in cols[~cols.isin([target])]:
if (data[ivars].dtype.kind in 'bifc') and (len(np.unique(data[ivars]))>10):
binned_x = pd.qcut(data[ivars], bins, duplicates='drop')
d0 = pd.DataFrame({'x': binned_x, 'y': data[target]})
else:
d0 = pd.DataFrame({'x': data[ivars], 'y': data[target]})
d0 = d0.astype({"x": str})
d = d0.groupby("x", as_index=False, dropna=False).agg({"y": ["count", "sum"]})
d.columns = ['Cutoff', 'N', 'Events']
d['% of Events'] = np.maximum(d['Events'], 0.5) / d['Events'].sum()
d['Non-Events'] = d['N'] - d['Events']
d['% of Non-Events'] = np.maximum(d['Non-Events'], 0.5) / d['Non-Events'].sum()
d['WoE'] = np.log(d['% of Non-Events']/d['% of Events'])
d['IV'] = d['WoE'] * (d['% of Non-Events']-d['% of Events'])
d.insert(loc=0, column='Variable', value=ivars)
#print("Information value of " + ivars + " is " + str(round(d['IV'].sum(),6)))
temp =pd.DataFrame({"Variable" : [ivars], "IV" : [d['IV'].sum()]}, columns = ["Variable", "IV"])
newDF=pd.concat([newDF,temp], axis=0)
woeDF=pd.concat([woeDF,d], axis=0)
#Show WOE Table
if show_woe == True:
print(d)
return newDF, woeDF
計(jì)算上面的數(shù)據(jù)集的WoE ,目標(biāo)變量為admit:
iv,woe=iv_woe(mydata,'admit')
woe
正 WOE 意味著被拒絕錄取的可能性更高(非事件,拒絕錄?。?fù) WOE 則相反。
權(quán)重證據(jù) WoE的好處
以下是一些權(quán)重證據(jù)的好處以及它如何可以用來(lái)改善您的預(yù)測(cè)模型。
- 它可以處理異常值。假設(shè)您有一個(gè)連續(xù)變量,比如年薪,而極端值超過(guò)了5億美元。這些值將被分組到一個(gè)類別中(比如說(shuō)25-50億美元)。隨后,我們將使用每個(gè)類別的WOE分?jǐn)?shù),而不是使用原始值。
- 它可以處理缺失值,因?yàn)槿笔е悼梢詥为?dú)分組。
- 由于WOE轉(zhuǎn)換處理分類變量,因此無(wú)需虛擬變量。
- WOE轉(zhuǎn)換可以幫助您建立嚴(yán)格的對(duì)數(shù)幾率的線性關(guān)系。否則,使用其他轉(zhuǎn)換方法(如對(duì)數(shù)、平方根等)很難實(shí)現(xiàn)線性關(guān)系。簡(jiǎn)而言之,如果不使用WOE轉(zhuǎn)換,您可能需要嘗試多種轉(zhuǎn)換方法來(lái)實(shí)現(xiàn)這一點(diǎn)。
信息價(jià)值 IV
信息價(jià)值(IV)是選擇預(yù)測(cè)模型中重要變量的最有用技術(shù)之一。它有助于根據(jù)其重要性對(duì)變量進(jìn)行排序。IV是使用以下公式計(jì)算的:
以上面的計(jì)算函數(shù)和數(shù)據(jù)集計(jì)算各個(gè)特征變量的IV 如下:
iv,woe=iv_woe(mydata,'admit')
iv
信息價(jià)值IV 規(guī)則
根據(jù)Siddiqi(2006)的說(shuō)法,在信用評(píng)分中,IV統(tǒng)計(jì)量的值可以按照以下方式解釋。如果IV統(tǒng)計(jì)量為:
- 小于0.02,則預(yù)測(cè)變量對(duì)建模(區(qū)分好壞)沒(méi)有用處
- 0.02到0.1,則預(yù)測(cè)變量與好壞比的關(guān)系較弱
- 0.1到0.3,則預(yù)測(cè)變量與好壞比的關(guān)系中等強(qiáng)度
- 0.3到0.5,則預(yù)測(cè)變量與好壞比的關(guān)系較強(qiáng)
- 大于0.5,則關(guān)系可疑(請(qǐng)檢查一次)
WOE和IV是數(shù)據(jù)分析和建模中的重要工具,它們能夠幫助我們發(fā)現(xiàn)特征與目標(biāo)變量之間的關(guān)系,并指導(dǎo)我們做出更好的決策。通過(guò)深入理解這些技術(shù)的原理和應(yīng)用,我們可以更好地優(yōu)化模型,提高預(yù)測(cè)準(zhǔn)確性,從而實(shí)現(xiàn)更好的業(yè)務(wù)結(jié)果。