1. 程式人生 > >【機器學習】決策樹(三)——生成演算法(ID3、C4.5與CRAT)

【機器學習】決策樹(三)——生成演算法(ID3、C4.5與CRAT)

回顧

前面我們介紹了決策樹的特徵選擇,以及根據資訊增益構建決策樹。

那麼決策樹的生成又有哪些經典演算法呢?本篇將主要介紹ID3的生成演算法,然後介紹C4.5中的生成演算法。最後簡單介紹CRAT演算法。

ID3演算法

前面我們提到,一般而言,資訊增益越大,則意味著使用該屬性來進行劃分所獲得的“純度”提升就越大。因此,我們可以用資訊增益來進行決策樹的劃分屬性選擇。著名的ID3決策樹學習演算法就是以資訊增益為準則來劃屬性的。

ID3演算法流程
輸入:訓練資料集D,特徵集A,閥值E
輸出:決策樹T
(1)若D中所屬例項屬於同一類Ck,則T為單結點樹,並將類Ck

作為該結點的類標記,返回T
(2)若A=ϕ,則T為單結點樹,並將D中例項數最大的類Ck作為該結點的類標記,返回T
(3)否則,按照計算A中每個特徵對D資訊增益,選擇資訊增益最大的特徵Am
(4)如果Am的資訊增益小於閥值E,則置T為單結點樹,並將D中例項數最大的類Ck作為該結點的類標記,返回T
(5)否則,對Am的每一種可能值ai,依Am=aiD分割為若干非空子集Di,將Di中例項數最大的類作為標記,構建子結點,由結點及其子結點構成樹T,返回T
(6)對第i個子結點,以Di為訓練集,以AAm為特徵集,遞迴呼叫步驟(1)~(5),得到子樹Ti,返回Ti

ID3演算法的優缺點

  • 優點:

決策樹構建速度快,容易構建

  • 缺點:

計算依賴於特徵數目較多的特徵,而屬性值最多的屬性並不一定最優
ID3演算法不是遞增演算法
ID3演算法是單變數決策樹,對特徵屬性之間的關係不會考慮
抗噪性差
只適合小規模資料集,需要將資料放到記憶體中
容易產生過擬合

C4.5演算法

C4.5演算法與ID3演算法相似,C4.5演算法對ID3演算法進行了改進。C4.5在生成的過程中,用資訊增益比來選特徵。

資訊增益比

以資訊增益作為劃分訓練資料集的特徵,存在偏向於選擇取值較多的特徵的問題,使用資訊增益比可以對這一問題進行校正。這是特徵選擇的另一準則。

定義:特徵A對訓練資料集D的資訊增益比gR(D,A)定義為其資訊增益g(D,A)與訓練資料集D關於特徵A的值的熵HA(D)之比,即:

gR(D,A)=g(D,A)HA(D)
其中:HA(D)=i=1n|D