決策樹分箱-特征工程之數(shù)據(jù)離散化處理
一、簡介
離散化是通過創(chuàng)建一組跨越變量值范圍的連續(xù)區(qū)間將連續(xù)變量轉換為離散變量的過程。
1.1 離散化有助于處理異常值和高度偏斜的變量
離散化通過將這些值 與分布的剩余內點值一起放入較低或較高的區(qū)間來幫助處理異常值。因此,這些異常值觀察不再與分布尾部的其余值不同,因為它們現(xiàn)在都在同一個區(qū)間/桶中。此外,通過創(chuàng)建適當?shù)?bin 或區(qū)間,離散化可以幫助將偏斜變量的值分布在具有相同觀察數(shù)量的一組 bin 中。
1.2 離散化方法
有幾種方法可以將連續(xù)變量轉換為離散變量。這個過程也稱為binning,每個 bin 是每個間隔。離散化方法分為兩類:有監(jiān)督的和無監(jiān)督的。
無監(jiān)督方法不使用變量分布以外的任何信息來創(chuàng)建將放置值的連續(xù)箱。
監(jiān)督方法通常使用目標信息來創(chuàng)建箱或區(qū)間。
我們將在本文中僅討論使用決策樹的監(jiān)督離散化方法
但在進入下一步之前,讓我們加載一個我們將在其上執(zhí)行離散化的數(shù)據(jù)集。
決策樹的離散化
決策樹的離散化包括使用決策樹來識別確定 bin 或連續(xù)間隔的最佳分裂點:
步驟 1:首先,它使用我們想要離散化的變量來訓練一個有限深度(2、3 或 4)的決策樹來預測目標。
第 2 步:然后將原始變量值替換為樹返回的概率。單個 bin 內的所有觀測值的概率相同,因此用概率替換相當于將決策樹決定的截止值內的觀測值分組。
好處 :
概率預測返回的決策樹與目標單調相關。
新的 bin 顯示出減少的熵,這是每個桶/桶內的觀察結果與它們自己的相似度,而不是其他桶/桶的觀察結果。
樹會自動找到垃圾箱。
缺點:
可能會導致過擬合
更重要的是,可能需要對樹參數(shù)進行一些調整以獲得最佳分割(例如,深度、一個分區(qū)中的最小樣本數(shù)、最大分區(qū)數(shù)和最小信息增益)。這可能很耗時。
讓我們看看如何使用Titanic 數(shù)據(jù)集對決策樹進行離散化。
1.導入有用的庫
2.加載數(shù)據(jù)集

3.將數(shù)據(jù)分成訓練集和測試集
因此,假設我們在數(shù)據(jù)集中沒有缺失值(或者即使我們在數(shù)據(jù)集中有可用的缺失數(shù)據(jù),我們也已經(jīng)對它們進行了估算)。我離開這部分是因為我的主要目標是展示離散化是如何工作的。
所以,現(xiàn)在讓我們可視化我們的數(shù)據(jù),以便我們從中獲得一些見解并了解變量
4. 讓我們使用age
to predict構建一個分類樹Survived
,以便對變量進行離散化age
。

現(xiàn)在我們有了一個使用age
變量來預測Survived
變量的分類模型。
新創(chuàng)建的變量Age_tree
包含數(shù)據(jù)點屬于對應類的概率
5. 檢查變量中存在的唯一值的數(shù)量Age_tree

為什么只有四個概率對?
在上面的輸入四中,我們提到max_depth = 2.
了深度為 2 的樹,進行了 2 次拆分,因此生成了 4 個桶,這就是為什么我們在上面的輸出中看到 4 個不同的概率。
6. 檢查離散化變量Age_tree
與目標之間的關系Survived
。

在這里,我們可以看到離散變量和Age_tree
目標變量之間的單調關系Survived
。該圖表明這Age_tree
似乎是目標變量的一個很好的預測器Survived
。
7. 在離散化變量的分布下檢查每個概率桶/箱的乘客數(shù)量。

讓我們通過捕獲每個概率桶的最小和最大年齡來檢查樹生成的年齡限制桶,以了解桶的截止點。
8.檢查樹生成的年齡限制桶

因此,決策樹生成的水桶:0–11
,12–15
,16–63?
和46–80
,用的生存概率0.51
,0.81
,0.37
和0.10
分別。
9.樹可視化

從圖中可以看出,我們獲得了 4 個 bin?max_depth=2
。
正如我之前提到的,我們可以優(yōu)化許多參數(shù)以使用決策樹獲得最佳的 bin 分割。下面我將優(yōu)化樹深度進行演示。但請記住,您還可以優(yōu)化決策樹的其余參數(shù)。訪問sklearn 網(wǎng)站以查看可以優(yōu)化哪些其他參數(shù)。
10.選擇樹的最佳深度
我將構建不同深度的樹,并計算為變量確定的roc-auc和每棵樹的目標,然后我將選擇生成最佳roc-auc的深度

在這里,我們可以很容易地觀察到我們使用深度 1 或 2獲得了最佳roc-auc。我將選擇深度 2繼續(xù)。
11.使用樹變換Age
變量
12. 檢查訓練集中變換后的age
變量

13. 檢查訓練集中每個 bin 的唯一值

14. 檢查測試集中轉換后的age
變量

15. 檢查訓練集中每個 bin 的唯一值

現(xiàn)在,我們已經(jīng)成功地將Age
變量離散為四個離散值,這可能有助于我們的模型做出更好的預測。
如果我們想離散化剩余的變量,如 ,我們也可以執(zhí)行相同的過程Fare
。
決策樹分箱就會大家介紹到這里,歡迎各位同學報名<python金融風控評分卡模型和數(shù)據(jù)分析微專業(yè)課>,學習更多相關知識
