IV:
<0.03:無預測能力
0.03-0.09:弱
0.1-0.29:中等
0.3-0.49:高
0.5:極高
但是IV不是越高越好的,當IV>1.2時候,可能分箱不好或者存在因果倒置關系
from numpy import log
from pandas import DataFrame as df
import pandas as pd
def createDateset():
dataSet=[
[0, 1, 0],
[0, 0, 0],
[0, 1, 0],
[1, 0, 1],
[1, 0, 0],
[1, 1, 1],
[0, 1, 1],
[1, 1, 1],
[1, 0, 1],
[1, 0, 1]]
return dataSet
def calcWOE(dataset,col,targe):
subdata=df(dataset.groupby(col)[col].count())
suby=df(dataset.groupby(col)[targe].sum())
data=df(pd.merge(subdata,suby,how="left",left_index=True,right_index=True))
b_total=data[targe].sum()
total=data[col].sum()
g_total=total-b_total
data["bad"]=data.apply(lambda x:round(x[targe]/b_total,3),axis=1)
data["good"]=data.apply(lambda x:round((x[col]-x[targe])/g_total,3),axis=1)
data["WOE"]=data.apply(lambda x:log(x.bad/x.good),axis=1)
return data.loc[:,["bad","good","WOE"]]
def calcIV(dataset):
dataset["IV"]=dataset.apply(lambda x:(x.bad-x.good)*x.WOE,axis=1)
IV=sum(dataset["IV"])
return IV
if __name__ == '__main__':
data=createDateset()
print(data)
data=df(data,columns=["x1","x2","y"])
print(data)
data_WOE=calcWOE(data,"x2","y")
print(data_WOE)
data_IV=calcIV(data_WOE)
print(data_IV)
IV的極端情況以及處理方式
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.
“IV基礎概念是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注本站網站,小編將為大家輸出更多高質量的實用文章!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
CHF即Confederation Helvetica Franc,指的是瑞士法郎這-貨幣。瑞士法郎的英文名是Swiss Franc, CHF中的"CH” 是瑞士這一國家的拉丁文縮寫字母, "F”是法郎的縮寫字母,組合起來即為CHF,是一 種加密型數字貨幣。瑞士法郎主要是瑞士還有列支敦士登這兩個國家使用,由瑞士中央銀行發行,分為硬幣和紙幣兩個幣種,其中共...
第一名:布加迪這是法國跑車品牌布加迪出口的豪華超跑。搭載8.0升w164渦輪增壓發動機,最大功率1500馬力,最大扭矩1600?!っ?。其百公里加速僅需2.5秒,最高時速可達420公里。當然,這款車的價格也很高,售價高達260萬美元。第2名:布加迪超級運動版這款車是世界上最快的量產跑車,最高時速可達431公里,百公里加速在2.5秒內。布加迪威龍于2010年9月在法蘭克福車展首發,最終被一家沃爾夫斯堡...
一般企業流動比率多少合適?流動比率一般在1.5~2.0之間比較好,流動比率越高這就說明日常經營越不需要短期資金的支持,但比率過高表明資金利用效率越低。在實際計算中,流動比率的計算公式為流動比率 = 流動資產/ 流動負債,也就是說流動資產的變化和流動負債的變化都會對流動比率的大小造成影響。1、流動比率用來衡量企業流動資產在短期債務到期以前,可以變為現金用于償還負債的能力。雖然流動比率越高,企業資產的...