一,C4.5算法是基於ID3算法的改進(優點)
- 對連續的數據也能處理
- 可以在決策樹構造過程中進行剪枝,因為某些具有很少元素的結點可能會使構造的決策樹過擬合(Overfitting),如果不考慮這些結點可能會更好
- 能夠對不完整數據進行處理。
- 用信息增益率來進行屬性選擇的度量
二,算法流程
三,屬性選擇度量(和ID3對比)
屬性選擇度量又稱分裂規則,因為它們決定給定節點上的元組如何分裂。屬性選擇度量提供了每個屬性描述給定訓練元組的秩評定,具有最好度量得分的屬性被選作給定元組的分裂屬性。目前比較流行的屬性選擇度量有--信息增益、增益率。 先做一些假設,設D是類標記元組訓練集,類標號屬性具有m個不同值,m個不同類Ci(i=1,2,…,m),CiD是D中Ci類的元組的集合,|D|和|CiD|分別是D和CiD中的元組個數。
-
信息增益
信息增益實際上是ID3算法中用來進行屬性選擇度量的。它選擇具有最高信息增益的屬性來作為節點N的分裂屬性。該屬性使結果划分中的元組分類所需信息量最小。對D中的元組分類所需的期望信息為下式:
Info(D)又稱為熵。
現在假定按照屬性A划分D中的元組,且屬性A將D划分成v個不同的類。在該划分之后,為了得到准確的分類還需要的信息由下面的式子度量(條件熵):
信息增益定義為原來的信息需求(即僅基於類比例)與新需求(即對A划分之后得到的)之間的差,即
-
信息增益率
正是基於此,ID3后面的C4.5采用了信息增益率這樣一個概念。信息增益率使用“分裂信息”值將信息增益規范化。分類信息類似於Info(D),定義如下:
這個值表示通過將訓練數據集D划分成對應於屬性A測試的v個輸出的v個划分產生的信息。信息增益率定義:
選擇具有最大增益率的屬性作為分裂屬性。
四,樹剪枝
在決策樹的構建的過程中,由於數據中的噪聲和離群點,許多分枝反映的是訓練數據中的異常。剪枝方法是用來處理這種過分擬合數據的問題。通常剪枝方法都是使用統計度量,剪去最不可靠的分枝。
-
先剪枝:
- 當決策樹達到一定的高度就停止決策樹的生長;
- 到達此節點的實例具有相同的特征向量,而不必一定屬於同一類,也可以停止生長
- 到達此節點的實例個數小於某個閾值的時候也可以停止樹的生長,不足之處是不能處理那些數據量比較小的特殊情況
- 計算每次擴展對系統性能的增益,如果小於某個閾值就可以讓它停止生長。先剪枝有個缺點就是視野效果問題,也就是說在相同的標准下,也許當前擴展不能滿足要求,但更進一步擴展又能滿足要求。這樣會過早停止決策樹的生長。
-
后剪枝:
-
它由完全成長的樹剪去子樹而形成。通過刪除節點的分枝並用樹葉來替換它。樹葉一般用子樹中最頻繁的類別來標記