決策樹(decision tree)(三)——連續值處理

決策樹(decision tree)(三)——連續值處理

**注:本博客爲周志華《機器學習》讀書筆記,雖然有一些自己的理解,但是其中仍然有大量文字摘自周老師的《機器學習》書。 
決策樹系列博客: 
    前面兩篇博客分別介紹瞭如何構造決策樹(根據信息增益,信息增益率,基尼指數等)和如何對決策樹進行剪枝(預剪枝和後剪枝),但是前面兩篇博客主要都是基於離散變量的,然而我們現實的機器學習任務中會遇到連續屬性,這篇博客主要介紹決策樹如何處理連續值。
連續值處理
    因爲連續屬性的可取值數目不再有限,因此不能像前面處理離散屬性枚舉離散屬性取值來對結點進行劃分。因此需要連續屬性離散化,常用的離散化策略是二分法,這個技術也是C4.5中採用的策略。下面來具體介紹下,如何採用二分法對連續屬性離散化:
    


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

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

根據上面計算 的公式,可得:

下面開始計算取不同值時的信息增益:

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

再由第一篇博客中決策樹(一)計算得到的各屬性的信息增益值:

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

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


以上就是決策樹如何處理連續值的內容,關於如何處理缺失值,因爲我會寫的比較詳細,所以如果和連續值放在一起,會顯得篇幅過長,因此放在下一篇博客中單獨介紹。
發佈了100 篇原創文章 · 獲贊 465 · 訪問量 61萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章