特徵工程之分箱

2022-04-06 05:53:48 字數 1965 閱讀 8971

最近比賽資料進入到特徵組合的階段,在進行特徵組合前,要分箱處理,等深等距之類的方法太沒有道理了,加上測試集的深度廣度也不同。

所以嘗試了一種woe編碼分箱的方法

import

woe.feature_process as fp

import

woe.eval as eval

dataset_train=pd.read_csv('

e:/比賽/公積金逾期**-資料/train.csv')

dataset_test=pd.read_csv('

e:/比賽/公積金逾期**-資料/test.csv')

#省略其他處理過程

#woe分箱

dataset_train.rename(columns=,inplace=true)#

資料中必須有一列名為『target』的列,在這裡改了一下列名

civ_list=

civ = fp.proc_woe_discrete(dataset_train, '

dwjjlx

', 2757, 37243, 0.05*len(dataset_train), alpha=0.5)#

對離散特徵進行分箱

civ_df =eval.eval_feature_detail(civ_list)

civ_df

#輸出分箱結果

dataset_train['dwjjlx'] = fp.woe_trans(dataset_train['dwjjlx'], civ)#woe賦值

輸出結果上表所示

核心函式主要是freature_process.proc_woe_discrete()與freature_process.proc_woe_continuous(),分別用於計算連續變數與離散變數的woe。它們的輸入形式相同:

proc_woe_discrete(df,var,global_bt,global_gt,min_sample,alpha=0.01)

proc_woe_continuous(df,var,global_bt,global_gt,min_sample,alpha=0.01)

輸入:df: dataframe,要計算woe的資料,必須包含'target'變數,且變數取值為

var:要計算woe的變數名

global_bt:全域性變數bad total。df的正樣本數量

global_gt:全域性變數good total。df的負樣本數量

min_sample:指定每個bin中最小樣本量,一般設為樣本總量的5%。

alpha:用於自動計算分箱時的乙個標準,預設0.01.如果iv_劃分》iv_不劃分*(1+alpha)則劃分。

輸出:乙個自定義的infovalue類的object,包含了分箱的一切結果資訊。

eval.eval_feature_detail(info_value_list,out_path=false)

輸入:info_value_list:儲存各變數分箱結果(proc_woe_continuous/discrete的返回值)的list.

out_path:指定的分箱結果儲存路徑,輸出為csv檔案

得到分箱及woe,iv結果後,對原資料進行woe轉換,其實就是用woe值去替換原來的。主要用以下函式

woe_trans(dvar,civ): replace the var value with the given woe value

輸入:dvar: 要轉換的變數,series

civ: proc_woe_discrete或proc_woe_discrete輸出的分箱woe結果,自定義的infovalue類

輸出:var: woe轉換後的變數,series

特徵工程 資料分箱

建模資料的預處理的過程中,變數分箱 即變數離散化 往往是較為核心一環。變數分箱的優劣往往會影響模型評分效果 對異常資料有比較好的魯棒性 在邏輯回歸模型中,單個變數分箱之後每個箱有自己獨立的權重,相當於給模型加入了非線性的能力,能夠提公升模型的表達能力,極大擬合 缺失值也可以作為一類特殊的變數進行模型...

特徵工程之特徵選擇

在前一篇文章中我介紹了一些資料預處理的方法,原始資料在經過預處理之後可以被演算法處理了,但是實際中可能有一些特徵是沒有必要的,比如在中國採集的一些資料,那麼國籍就都是中國,其實也就沒有意義了,反映在統計量上就是方差過小,也就是樣本在這個特徵上變化很小。還有一種情況是特徵和最後的結果相關性很小,也就是...

特徵工程之特徵選擇

特徵選擇其實就是減少屬性個數,為什麼要這麼做呢?直接使用原始資料來訓練模型的話,雖然說在訓練模型上的準確率會非常高,但是在測試樣本上的準確率將會大打折扣,也就是會產生過擬合的現象。所以說需要選擇出最適合的屬性進行訓練。特徵選擇的原因 2 雜訊 部分特徵對 結果又影響 進行特徵選擇的時候有兩種情況 一...