決策樹 連續值的處理

2021-08-27 23:41:34 字數 1035 閱讀 2388

| 連續值處理

因為連續屬性的可取值數目不再有限,因此不能像前面處理離散屬性列舉離散屬性取值來對結點進行劃分。因此需要連續屬性離散化,常用的離散化策略是二分法,這個技術也是c4.5中採用的策略。下面來具體介紹下,如何採用二分法對連續屬性離散化:

下面舉個具體的例子,來看看到底是怎樣劃分的。給定資料集如下(資料集來自周志華《機器學習》,我已經把資料集放到github上了,位址為:西瓜資料集3.0):

對於資料集中的屬性「密度」,決策樹開始學習時,根節點包含的17個訓練樣本在該屬性上取值均不同。我們先把「密度」這些值從小到大排序:

根據上面計算

下面開始計算t 取不同值時的資訊增益:

對屬性「含糖率」,同樣的計算,能夠計算出:

再由第一篇部落格中決策樹(一)計算得到的各屬性的資訊增益值:

比較能夠知道紋理的資訊增益值最大,因此,「紋理」被選作根節點劃分屬性,下面只要重複上述過程遞迴的進行,就能構造出一顆決策樹:

**有一點需要注意的是:與離散屬性不同,若當前結點劃分屬性為連續屬性,該屬性還可作為其後代結點的劃分屬性。**如下圖所示的一顆決策樹,「含糖率」這個屬性在根節點用了一次,後代結點也用了一次,只是兩次劃分點取值不同。

決策樹缺失值python 決策樹處理缺失值

缺失值問題可以從三個方面來考慮 1.在選擇 屬性的時候,訓練樣本存在缺失值,如何處理?計算 損失減少值時,忽略特徵缺失的樣本,最終計算的值乘以比例 實際參與計算的樣本數除以總的樣本數 假如你使用id3演算法,那麼選擇分類屬性時,就要計算所有屬性的熵增 資訊增益,gain 假設10個樣本,屬性是a,b...

決策樹缺失值處理

缺失值問題可以從三個方面來考慮 1.在選擇 屬性的時候,訓練樣本存在缺失值,如何處理?計算 損失減少值時,忽略特徵缺失的樣本,最終計算的值乘以比例 實際參與計算的樣本數除以總的樣本數 假如你使用id3演算法,那麼選擇分類屬性時,就要計算所有屬性的熵增 資訊增益,gain 假設10個樣本,屬性是a,b...

決策樹如何處理取值為連續值的特徵(屬性)

在介紹資訊增益 資訊增益率 基尼指數的時候都只是說了離散特徵的處理,公式也是只針對離散特徵,那麼連續特徵怎麼辦呢?顯然公式不再適用,那麼我們改公式嗎?本來這幾個公式就來自其他學科的研究成果,直接推廣似乎不大可能,那麼就有另一條路,把連續的特徵離散化。這樣一來不就又可以套上面處理離散值的公式了嗎?辦法...