聲明:原創內容,如需轉載請注明出處
今天講解的內容是:
信息增益比,決策樹的生成算法—ID3和C4.5
我們昨天已經學習了什么是信息增益,並且通過信息增益來選擇最優特征,但是用信息增益會出現偏向於選擇取值多的特征。
來解釋下這句話。以最極端的情況舉例,比如有6個樣本,特征年齡的取值為5個值,19歲,20歲,21歲,22歲,23歲。
假設19歲的貸款情況為“是”,20歲為“否”,21歲“是”,22歲“否”,23歲“是”。
那么來一個新的申請者20歲,那么直接分類為“否”。這顯然是不合理的。
這樣的分類結果是確定的。 也就是說經驗條件熵為0(括號里的)。這意味着該情況下的信息增益達到了最大值。
所以取值更多的屬性,更容易使得數據更“純”(尤其是連續型數值),其信息增益更大,決策樹會首先挑選這個屬性作為樹的頂點。結果訓練出來的形狀是一棵龐大且深度很淺的樹,這樣的划分是極為不合理的。
在此引入了信息增益比
信息增益比是信息增益和訓練數據D關於特征A的熵H(D)
也叫做拆分信息,這個特征取得值越多(拆分的越多)熵H(D)越大,g(D,A)也越大,算出來的熵就會被綜合。用信息增益比來選取特征就會更准確一點。
決策樹的生成算法C4.5就是使用了信息增益率,在信息增益的基礎上除了一項split information(拆分信息),來懲罰值更多的屬性。
另一個決策樹的生成算法是ID3算法,是以信息增益為准則選取特征。
ID3算法
從根節點開始,計算所有可能的特征的信息增益,選擇信息增益最大的特征作為當前節點的特征,由特征的不同取值建立空白子節點,對空白子節點遞歸調用此方法,直到所有特征的信息增益小於閥值或者沒有特征可選為止。
在昨天講過的這個例子中,由於有房子的信息增益最大,所以選擇它作為根節點。它將訓練數據D分為兩個子集D1,D2,D1取“是”,D2取“否”,由於D1里的數據是同一類樣本點(就是在下圖表中,有房子的(“是”)項,對應的最后一列的類別都是(“是”)所以不需要對這個節點在進行操作,它就成為了葉節點。
由於D2里的數據不都是屬於同一類別。則要通過ID3算法,從其他的特征中選出一個來作為新特征。通過計算選取的是“有工作”
最后就生成了這樣一棵樹。
而C4.5只是把其中的信息增益換成信息增益比 ,其他的就沒有區別了。
由於決策生成算法(ID3,C4.5)容易產生過擬合,在學習的過程中過多的考慮對訓練數據的正確分類,從而構建出過於復雜的樹。
在下一次中,我們將學習,如何對這樣的樹做出簡化。