關於卡方分箱,網上有很多文章,但幾乎沒有文章介紹分箱時相鄰區間卡方值計算的方法,而本文在介紹卡方分箱的同時,重點介紹了相鄰區間卡方值的計算方法。通過本文,希望大家能對卡方分箱有清楚透徹的認識。
分箱是什么
分箱是將連續的變量離散化,將多狀態的離散變量合並成少狀態。這里要注意的是,不僅僅是連續變量要分箱,狀態多的離散變量也需要分箱,之前接觸過公司內特征工程的項目,里邊就將超過50個值的離散特征視為連續特征。
基本思想
對於精確的離散化,相對類頻率在一個區間內應當完全一致。因此,如果兩個相鄰的區間具有非常類似的類分布,則這兩個區間可以合並;否則,它們應當保持分開。而低卡方值表明它們具有相似的類分布。
卡方值的計算方法
對於下面的例子,相鄰兩個特征值的卡方值的計算方法是這樣的:
feature | y0 | y1 |
---|---|---|
x1 | a | b |
x2 | c | d |
... | ... | ... |
xn | ... | ... |
x1和x2的卡方值計算公式為:
為什么低卡方值就表示x1和x2具有相似的類分布呢?可以這樣想,當x1和x2具有相似的類分布的時候,卡方值是怎么樣的。卡方值的一般計算公式是這樣的:

其中,A為觀測的值,T為理論的值。觀測值就是表中樣本的數據,那么理論值是什么?其實就是忽略x1和x2的影響計算出來的值,把x1和x2合並起來看待,總體看樣本為y0的概率是 p =(a+c)/(a+b+c+d),那么特征為x1且類別為y0的理論值就是(a+b)*p。可以看出,如果x1和x2具有相似的類分布,那么它們對應類別的數量是逼近這個理論值的,而卡方值的計算公式的意義是衡量觀測值與理論值的距離,如果卡方值小,說明觀測值和理論值差距很小,也就說明特征無論取x1或x2,類別的分布是相似的。
卡方分箱
卡方分箱是基於卡方檢驗的,將具有最小卡方值的相鄰區間合並在一起,直到滿足確定的停止條件。卡方分箱是自底向上的數據離散化方法。
卡方分箱的實現步驟:
- 預先設定一個卡方閾值
- 根據要離散的屬性對實例進行排序,每個實例屬於一個區間
- 合並區間
a. 計算每一對相鄰區間的卡方值
b. 將卡方值最小的一對區間合並 - 判斷是否滿足停止條件,不滿足則繼續進行步驟3,反之停止。
這里的停止條件有兩個:
- 分箱的個數達到限制條件
- 最小的相鄰分箱的卡方值大於閾值
總結
本文介紹了什么是分箱以及卡方分箱的算法,並着重介紹了卡方分箱中相鄰區間卡方值的計算方法。
以下是參考資料:
統計檢驗之——卡方檢驗(Chi-Square Tests): https://education.ti.com/sites/CHINA/downloads/pdf/chi_square_tests_xudeqian.pdf
</div>
</div>