歡迎光臨
每天分享高質量文章

詳解決策樹 C4.5 演演算法

‍‍‍‍

(點選上方公眾號,可快速關註)

轉自:Treant

http://www.cnblogs.com/en-heng/p/5013995.html

好文投稿, 請點選 → 這裡瞭解詳情


決策樹模型與學習


決策樹(decision tree)演演算法基於特徵屬性進行分類,其主要的優點:模型具有可讀性,計算量小,分類速度快。


決策樹演演算法包括了由Quinlan提出的ID3與C4.5,Breiman等提出的CART。其中,C4.5是基於ID3的,對分裂屬性的標的函式做出了改進。


決策樹模型


決策樹是一種透過對特徵屬性的分類對樣本進行分類的樹形結構,包括有向邊與三類節點:


1、根節點(root node),表示第一個特徵屬性,只有出邊沒有入邊;

2、內部節點(internal node),表示特徵屬性,有一條入邊至少兩條出邊

3、葉子節點(leaf node),表示類別,只有一條入邊沒有出邊。


上圖給出了(二叉)決策樹的示例。決策樹具有以下特點:


1、對於二叉決策樹而言,可以看作是if-then規則集合,由決策樹的根節點到葉子節點對應於一條分類規則;


2、分類規則是互斥並且完備的,所謂互斥即每一條樣本記錄不會同時匹配上兩條分類規則,所謂完備即每條樣本記錄都在決策樹中都能匹配上一條規則。


3、分類的本質是對特徵空間的劃分,如下圖所示,



決策樹學習


決策樹學習的本質是從訓練資料集中歸納出一組分類規則[2]。但隨著分裂屬性次序的不同,所得到的決策樹也會不同。如何得到一棵決策樹既對訓練資料有較好的擬合,又對未知資料有很好的預測呢?


首先,我們要解決兩個問題:


1、如何選擇較優的特徵屬性進行分裂?每一次特徵屬性的分裂,相當於對訓練資料集進行再劃分,對應於一次決策樹的生長。ID3演演算法定義了標的函式來進行特徵選擇。


2、什麼時候應該停止分裂?有兩種自然情況應該停止分裂,一是該節點對應的所有樣本記錄均屬於同一類別,二是該節點對應的所有樣本的特徵屬性值均相等。但除此之外,是不是還應該其他情況停止分裂呢?


決策樹演演算法


特徵選擇


特徵選擇指選擇最大化所定義標的函式的特徵。下麵給出如下三種特徵(Gender, Car Type, Customer ID)分裂的例子:



圖中有兩類類別(C0, C1),C0: 6是對C0類別的計數。直觀上,應選擇Car Type特徵進行分裂,因為其類別的分佈機率具有更大的傾斜程度,類別不確定程度更小。


為了衡量類別分佈機率的傾斜程度,定義決策樹節點