1. 程式人生 > >【資料建模 特徵分箱】特徵分箱的方法

【資料建模 特徵分箱】特徵分箱的方法

在建模中,需要對連續變數離散化,特徵離散化後,模型會更穩定,降低了模型過擬合的風險。

有監督的卡方分箱法(ChiMerge)

自底向上的(即基於合併的)資料離散化方法。
它依賴於卡方檢驗:具有最小卡方值的相鄰區間合併在一起,直到滿足確定的停止準則。

基本思想:

對於精確的離散化,相對類頻率在一個區間內應當完全一致。因此,如果兩個相鄰的區間具有非常類似的類分佈,則這兩個區間可以合併;否則,它們應當保持分開。而低卡方值表明它們具有相似的類分佈。

這裡寫圖片描述

這裡需要注意初始化時需要對例項進行排序,在排序的基礎上進行合併。

卡方閾值的確定:

根據顯著性水平和自由度得到卡方值
自由度比類別數量小1。例如:有3類,自由度為2,則90%置信度(10%顯著性水平)下,卡方的值為4.6。

閾值的意義

類別和屬性獨立時,有90%的可能性,計算得到的卡方值會小於4.6。 大於閾值4.6的卡方值就說明屬性和類不是相互獨立的,不能合併。如果閾值選的大,區間合併就會進行很多次,離散後的區間數量少、區間大。
  
注:
1,ChiMerge演算法推薦使用0.90、0.95、0.99置信度,最大區間數取10到15之間.
2,也可以不考慮卡方閾值,此時可以考慮最小區間數或者最大區間數。指定區間數量的上限和下限,最多幾個區間,最少幾個區間。
3,對於類別型變數,需要分箱時需要按照某種方式進行排序。

無監督分箱法:

等距劃分、等頻劃分

等距分箱
  從最小值到最大值之間,均分為 N 等份, 這樣, 如果 A,B 為最小最大值, 則每個區間的長度為 W=(B−A)/N , 則區間邊界值為A+W,A+2W,….A+(N−1)W 。這裡只考慮邊界,每個等份裡面的例項數量可能不等。
  
等頻分箱


  區間的邊界值要經過選擇,使得每個區間包含大致相等的例項數量。比如說 N=10 ,每個區間應該包含大約10%的例項。
  
以上兩種演算法的弊端
  比如,等寬區間劃分,劃分為5區間,最高工資為50000,則所有工資低於10000的人都被劃分到同一區間。等頻區間可能正好相反,所有工資高於50000的人都會被劃分到50000這一區間中。這兩種演算法都忽略了例項所屬的型別,落在正確區間裡的偶然性很大。

我們對特徵進行分箱後,需要對分箱後的每組(箱)進行woe編碼,然後才能放進模型訓練。