python計算IV值及使用

來源:互聯網
上載者:User

標籤:python   大資料   IV   

更多風控建模、大資料分析等內容請關注公眾號《大Alibaba Antifraud Service的一點一滴》

在對變數分箱後,需要計算變數的重要性,IV是評估變數區分度或重要性的統計量之一,python計算IV值的代碼如下:

def CalcIV(Xvar, Yvar):    N_0  = np.sum(Yvar==0)   N_1 = np.sum(Yvar==1)   N_0_group = np.zeros(np.unique(Xvar).shape)   N_1_group = np.zeros(np.unique(Xvar).shape)   for i in range(len(np.unique(Xvar))):       N_0_group[i] = Yvar[(Xvar == np.unique(Xvar)[i]) & (Yvar == 0)].count()       N_1_group[i] = Yvar[(Xvar == np.unique(Xvar)[i]) & (Yvar == 1)].count()   iv = np.sum((N_0_group/N_0 - N_1_group/N_1) * np.log((N_0_group/N_0)/(N_1_group/N_1)))   return  iv   def caliv_batch(df, Kvar, Yvar):   df_Xvar = df.drop([Kvar, Yvar], axis=1)   ivlist = []   for col in df_Xvar.columns:       iv = CalcIV(df[col], df[Yvar])       ivlist.append(iv)   names = list(df_Xvar.columns)   iv_df = pd.DataFrame({‘Var‘: names, ‘Iv‘: ivlist}, columns=[‘Var‘, ‘Iv‘])   return iv_df

其中,df是分箱後的資料集,Kvar是主鍵,Yvar是y變數(0是好,1是壞)。代碼運行結果如下:

python計算IV值及使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.