1、J48原理
基於從上到下的策略,遞歸的分治策略,選擇某個屬性放置在根節點,為每個可能的屬性值產生一個分支,將實例分成多個子集,每個子集對應一個根節點的分支,然后在每個分支上遞歸地重復這個過程。當所有實例有相同的分類時,停止。
問題:如何選擇根節點屬性,建立分支呢?
例如:weather.arff
我們希望得到的是純分裂,即分裂為純節點,希望找到一個屬性,它的一個節點全是yes,一個節點全是no,或許第三個節點又全是yes,這是最好的情況,因為如果是混合節點則需要再次分裂。
通過量化來確定能產生最純子節點的屬性---計算純度(目標是得到最小的決策樹)。而自上而下的樹歸納法用到了一些啟發式方法---產生純節點的啟發法是以信息論為基礎的,即信息熵,以bits測量信息。
信息增益=分裂前分布的信息熵-分裂后分布的信息熵,選擇信息增益最大的屬性。
(分裂前分部信息熵)
(分布后分布信息熵)
(屬性A的信息增益)
計算這四個屬性的信息增益,如下圖:
經過計算得到outlook、windy、humidity、temperature的信息增益分別為0.247bits、0.048bits、0.152bits、0.029bits,所以選擇outlook為根節點。
........
2、舉例
(1)所給數據如下圖
(2)選擇根節點
先求age的信息增益
分裂前分布的信息熵:
分裂后分布的信息熵:
信息增益:
類似地:
比較得到選擇age為根節點,然后得到決策樹的第一層,如下圖:
然后在每個分支上遞歸地重復這個過程,直到所有實例有相同的分類。
3、總結
J48分類算法可信度高,建立的決策樹簡單易懂,並且結果非常容易理解。