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

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

**注:本博客爲周志華《機器學習》讀書筆記,雖然有一些本身的理解,可是其中仍然有大量文字摘自周老師的《機器學習》書。 git

決策樹系列博客: github

    前面兩篇博客分別介紹瞭如何構造決策樹(根據信息增益,信息增益率,基尼指數等)和如何對決策樹進行剪枝(預剪枝和後剪枝),可是前面兩篇博客主要都是基於離散變量的,然而咱們現實的機器學習任務中會遇到連續屬性,這篇博客主要介紹決策樹如何處理連續值。機器學習

| 連續值處理學習

    由於連續屬性的可取值數目再也不有限,所以不能像前面處理離散屬性枚舉離散屬性取值來對結點進行劃分。所以須要連續屬性離散化,經常使用的離散化策略是二分法,這個技術也是C4.5中採用的策略。下面來具體介紹下,如何採用二分法對連續屬性離散化:spa

    

 

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

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

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

下面開始計算取不一樣值時的信息增益:排序

對屬性「含糖率」,一樣的計算,可以計算出:遞歸

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

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

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

 

以上就是決策樹如何處理連續值的內容,關於如何處理缺失值,由於我會寫的比較詳細,因此若是和連續值放在一塊兒,會顯得篇幅過長,所以放在下一篇博客中單獨介紹。

相關文章
相關標籤/搜索