使用卡方分箱進行數(shù)據(jù)離散化
我們經(jīng)常疑惑,有些算法例如邏輯回歸評分卡建模時為什么要用分箱技術(shù)。搞懂了離散化優(yōu)點即可找到答案。
離散化(Discretization):將定量數(shù)據(jù)轉(zhuǎn)化為定性數(shù)據(jù)的過程。
一些數(shù)據(jù)挖掘算法只接受分類屬性(LVF、FINCO、樸素貝葉斯)。
當(dāng)數(shù)據(jù)只有定量特征時,學(xué)習(xí)過程通常效率較低且效果較差。
卡方分箱算法(Chi Merge Algorithm)
這種離散化方法使用合并方法。
相對類頻率應(yīng)該在一個區(qū)間內(nèi)相當(dāng)一致(否則應(yīng)該分裂)
χ2 是用于檢驗兩個離散屬性在統(tǒng)計上獨立的假設(shè)的統(tǒng)計量度。
對于相鄰的兩個區(qū)間,如果 χ2 檢驗得出該類是獨立的區(qū)間,則應(yīng)合并。如果 χ2 檢驗得出的結(jié)論是它們不是獨立的,即相對類別頻率的差異在統(tǒng)計上是顯著的,則兩個區(qū)間應(yīng)保持獨立。

(卡方分布圖)
列聯(lián)表

計算 χ 2
值可以計算如下:

計算步驟
計算每對相鄰區(qū)間的 χ2 值
合并具有最低 χ2 值的相鄰區(qū)間對
重復(fù)上述步驟,直到所有相鄰對的χ2值超過閾值
閾值:由顯著性水平和自由度決定 = 類數(shù) -1
例子

Chi Merge 進行如下。最初,數(shù)值屬性 A 的每個不同值都被認為是一個區(qū)間。對每對相鄰區(qū)間進行 χ2 檢驗。具有最小 χ2 值的相鄰區(qū)間合并在一起,因為一對的低 χ 2 值表示相似的類分布。這個合并過程遞歸進行,直到滿足預(yù)定義的停止標(biāo)準(zhǔn)。
第1步
將數(shù)據(jù)集拆分為 2 個數(shù)據(jù)集并分別查找值。
數(shù)據(jù)集 1 → X,類
數(shù)據(jù) 集 2 → Y,類











使用 Python 實現(xiàn)的 Chi Merge卡方分箱
讓我們使用 IRIS 數(shù)據(jù)集并嘗試實施 Chi Merge 過程。



python scipy包有卡方檢驗函數(shù)
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.chi2_contingency.html
更多卡方檢驗代碼
此版本不用算出期望值,更加方便,參考的是2*2聯(lián)立表,自由度=1,critical value=2.7
使用卡方分箱進行數(shù)據(jù)離散化就為大家介紹到這里。強調(diào)一下,并非所有算法都需要數(shù)據(jù)離散化處理。目前集成樹算法也很流行,例如xgboost,lightgbm,catboost,他們都不需要數(shù)據(jù)離散化處理。到底哪種方法最好,這個說不準(zhǔn),我通過多個項目測試,不同數(shù)據(jù)分布有不同結(jié)論!希望各位同學(xué)不要盲目迷信理論,自己多去做測試,多自我思考。
使用卡方分箱進行數(shù)據(jù)離散化就為大家介紹到這里了,歡迎各位同學(xué)報名<python金融風(fēng)控評分卡模型和數(shù)據(jù)分析微專業(yè)課>,學(xué)習(xí)更多相關(guān)知識

版權(quán)聲明:文章來自公眾號(python風(fēng)控模型),未經(jīng)許可,不得抄襲。遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。