1. 程式人生 > >決策樹(ID3、C4.5、CART)

決策樹(ID3、C4.5、CART)

顧名思義,決策樹是基於樹結構進行決策。

1.ID3決策樹

最大化資訊增益為準則來選擇劃分屬性。
假設離散屬性a上有V個可能的取值{a1,...,aV}\{a^1,...,a^V\},若使用a對樣本集D進行劃分,則會產生V個分支節點。其中第v個分支節點包含了D中所有在屬性a上取值為ava^v的樣本,記為DvD^v
maxGain(D,a)=Entropy(D)Entropy(Da)=Entropy(D)v=1VDvDEntropy(Dv)max \quad Gain(D,a)=Entropy(D)-Entropy(D|a) =Entropy(D)-\sum_{v=1}^V\frac{|D^v|}{|D|}Entropy(D^v)

資訊增益Gain(D,a)Gain(D,a)越大,則表示使用屬性a進行劃分所獲得的純度提升越大。
資訊熵:越小則X的純度越高。Entropy(X)=xXp(x)logp(x)Entropy(X)=-\sum_{x\in X} p(x)logp(x)條件熵:Entropy(YX)=xXp(x)Entropy(YX=x)Entropy(Y|X) =\sum_{x\in X}p(x)Entropy(Y|X=x)

2.C4.5決策樹

資訊增益準則對取值數目較多的屬性有所偏好,為了減少這種偏好可能帶來的不利影響,C4.5決策樹以最大化資訊增益率為準則來選擇劃分屬性。資訊增益率代表單位代價所取得的資訊量。maxGain_ratio(D,a)=Gain(D,a)Entropy(D,a)=Gain(D,a)v=1VDvDlogDvDmax \quad Gain\_ratio(D,a)=\frac{Gain(D,a)}{Entropy(D,a)}=\frac{Gain(D,a)}{-\sum_{v=1}^V\frac{|D^v|}{|D|}log\frac{|D^v|}{|D|}}


聯合熵:Entropy(X,Y)=p(x,y)logp(x,y)Entropy(X,Y)=-\sum p(x,y)logp(x,y)

3.CART決策樹

最小化基尼指數為準則來選擇劃分屬性。
minGini_index(D,a)=DLDGini(DL)+DRDGini(DR)min \quad Gini\_index(D,a)=\frac{|D^L|}{|D|}Gini(D^L)+\frac{|D^R|}{|D|}Gini(D^R)
基尼值=樣本被選中的概率*樣本被分錯的概率,基尼值越小則D的純度越高。
Gini(D)=k=1Kpk(1pk)=1k=1Kpk2Gini(D)=\sum_{k=1}^Kp_k(1-p_k)=1-\sum_{k=1}^Kp_k^2
【例題】:
在這裡插入圖片描述

4.剪枝處理

  • 預剪枝
    事先給定閾值,使得很多分支沒有展開,從而降低過擬合的風險
  • 後剪枝
    對多種不同的剪枝結果進行評價,選出最好的剪枝形式,評價方法是在訓練誤差和模型複雜度之間尋找一個平衡點。

5.特殊情況

  • 連續變數:離散化處理(最簡單:二分法,取中位點作為候選劃分點)
  • 缺失值:對每個樣本賦予一個權重,推廣資訊增益公式