基本的決策樹生成算法主要有ID3和C4.5, 它們生成樹的過程大體類似,ID3是採用的信息增益做爲特徵選擇的度量,而C4.5採用信息增益比。構建過程以下:web
- 從根節點開始,計算全部可能的特徵的信息增益(信息增益比),選擇計算結果最大的特徵。
- 根據算出的特徵創建子節點,執行第一步,直到全部特徵的信息增益(信息增益比)很小或者沒有特徵能夠選擇爲止。
以上算法只有樹的生成,容易產生過擬合。算法
決策樹對於訓練數據有很好的分類,可是對於未知測試集的分類並無那麼準確,這就產生過擬合的現象。其實,原理都是同樣,決策樹的構建是直到沒有特徵可選或者信息增益很小,這就致使構建的決策樹模型過於複雜,而複雜的模型是經過在訓練數據集上創建的,因此對於測試集每每形成分類的不許確,這就是過擬合。解決過擬合的方法是控制模型的複雜度,對於決策樹來講就是簡化模型,稱爲剪枝。很形象的就是減掉樹中的一些節點。
決策樹的剪枝通常經過極小化損失函數或者代價函數來實現。svg
設樹T的葉節點的個數爲|T|,t是樹T的葉節點,該葉節點上有Nt個樣本點,其中k類樣本點有Ntk個,k=1,2,…,K,Ht(T)爲葉節點t上的經驗熵,α≥0爲參數,則決策樹的損失函數可以定義爲:
函數Cα(T)=∑t=1|T|NtHt(T)+α|T|(1)
其中,經驗熵爲:
Ht(T)=−∑kNtkNtlogNtkNt(2)
將(1)式的第一項記爲:
C(T)=∑t=1|T|NtHt(T)=−∑t=1|T|∑k=1KNtklogNtkNt
則:
Cα(T)=C(T)+α|T|(3)
從上述分析能夠看出,決策樹的生成算法的模型複雜度很高,很好的地擬合了訓練數據。須要重點提一下的是,(3)式定義的損失函數極小化等價於正則化的極大似然估計。atom