1) 用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足,公式為GainRatio(A);
2) 在樹構造過程中進行剪枝;
3) 能夠完成對連續屬性的離散化處理;
4) 能夠對不完整數據進行處理。
C4.5算法與其它分類算法如統計方法、神經網絡等比較起來有如下優點:產生的分類規則易於理解,准確率較高。其缺點是:在構造樹的過程中,需要對數據集進行多次的順序掃描和排序,因而導致算法的低效。此外,C4.5只適合於能夠駐留於內存的數據集,當訓練集大得無法在內存容納時程序無法運行。
1.信息增益率
之所以是用信息增益率起原因是信息增益在選擇屬性時會偏向多屬性這個缺點:
信息增益率定義如下:
其中Grain(S,A) 與ID3的信息增益相同,而分裂信息SplitInfo(S,A)代表了按照屬性A分裂樣本集的廣度與均勻性。
其中S1到Sc是C個不同值得屬性A分割中S而形成的C個樣本子集,如果按照屬性A把S集(30個用列)分成10與20個用列集合,則SplitInfo(S,A)= -1/3*log(1/3)-2/3log(2/3)
2.以二值離散的方式處理連續型的數據
所謂二值離散:是指對連續屬性進行排序,得到多個候選閾值,選取產生最大信息增益的閾值作為分裂閾值
3.C4.5采用的改進EBP剪枝算法
4.處理缺失值
在ID3算法中不能處理缺失值,而本算法可卻可以,處理缺失值得方法如下:
以上是C4.5 算法的相對於ID3算法的改進。
其中在C4.5之后又發展了C5.0算法,引入了Boost框架。具體可以看相關的附件。