C4.5算法

1.3、C4.5算法
1.3.1、ID3算法的改進:C4.5算法
GOOGLE 學術主頁: http://scholar.google.com.hk/citations?user=FjqRZCEAAAAJ
C4.5,是機器學習算法中的另一個分類決策樹算法,它是決策樹(決策樹也就是做決策的節點間的組織方式像一棵樹,其實是一個倒樹)核心算法,也是上文1.2節所介紹的ID3的改進算法,所以基本上了解了一半決策樹構造方法就能構造它。
決策樹構造方法其實就是每次選擇一個好的特徵以及分裂點作爲當前節點的分類條件。
既然說C4.5算法是ID3的改進算法,那麼C4.5相比於ID3改進的地方有哪些呢?:

1、用信息增益率來選擇屬性。ID3選擇屬性用的是子樹的信息增益,這裏可以用很多方法來定義信息,ID3使用的是熵(entropy,熵是一種不純度度量準則),也就是熵的變化值,而C4.5用的是信息增益率。對,區別就在於一個是信息增益,一個是信息增益率。
2、在樹構造過程中進行剪枝,在構造決策樹的時候,那些掛着幾個元素的節點,不考慮最好,不然容易導致overfitting。
3、對非離散數據也能處理。
4、能夠對不完整數據進行處理

針對上述第一點,解釋下:一般來說率就是用來取平衡用的,就像方差起的作用差不多,比如有兩個跑步的人,一個起點是10m/s的人、其10s後爲20m/s;另一個人起速是1m/s、其1s後爲2m/s。如果緊緊算差值那麼兩個差距就很大了,如果使用速度增加率(加速度,即都是爲1m/s^2)來衡量,2個人就是一樣的加速度。因此,C4.5克服了ID3用信息增益選擇屬性時偏向選擇取值多的屬性的不足。

C4.5算法之信息增益率
OK,既然上文中提到C4.5用的是信息增益率,那增益率的具體是如何定義的呢?:
是的,在這裏,C4.5算法不再是通過信息增益來選擇決策屬性。一個可以選擇的度量標準是增益比率gain ratio(Quinlan 1986)。增益比率度量是用前面的增益度量Gain(S,A)和分裂信息度量SplitInformation(S,A)來共同定義的,如下所示:
這裏寫圖片描述
其中,分裂信息度量被定義爲(分裂信息用來衡量屬性分裂數據的廣度和均勻):
這裏寫圖片描述
其中S1到Sc是c個值的屬性A分割S而形成的c個樣例子集。注意分裂信息實際上就是S關於屬性A的各值的熵。這與我們前面對熵的使用不同,在那裏我們只考慮S關於學習到的樹要預測的目標屬性的值的熵。
請注意,分裂信息項阻礙選擇值爲均勻分佈的屬性。例如,考慮一個含有n個樣例的集合被屬性A徹底分割(譯註:分成n組,即一個樣例一組)。這時分裂信息的值爲log2n。相反,一個布爾屬性B分割同樣的n個實例,如果恰好平分兩半,那麼分裂信息是1。如果屬性A和B產生同樣的信息增益,那麼根據增益比率度量,明顯B會得分更高。
使用增益比率代替增益來選擇屬性產生的一個實際問題是,當某個Si接近S(|Si|»|S|)時分母可能爲0或非常小。如果某個屬性對於S的所有樣例有幾乎同樣的值,這時要麼導致增益比率未定義,要麼是增益比率非常大。爲了避免選擇這種屬性,我們可以採用這樣一些啓發式規則,比如先計算每個屬性的增益,然後僅對那些增益高過平均值的屬性應用增益比率測試(Quinlan 1986)。
除了信息增益,Lopez de Mantaras(1991)介紹了另一種直接針對上述問題而設計的度量,它是基於距離的(distance-based)。這個度量標準基於所定義的一個數據劃分間的距離尺度。具體更多請參看:Tom M.Mitchhell所著的機器學習之3.7.3節。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章