決策樹(一)——決策樹的生成ID3、C4.5、CART

基礎概念

什麼是信息熵?

熵是度量樣本集合純度最常用的一種指標,代表一個系統中蘊含有多少信息量,信息量越大表明一個系統不確定性越大,就存在越多的可能性,即信息熵越大。

假定當前樣本集合D中第k類樣本所佔的比例爲pk(k=1,2,...,y)p_k(k=1,2,...,|y|),則D的信息熵爲:
Ent(D)=k=1ypklog2pkEnt(D)=-\sum_{k=1}^{|y|}p_klog_2p_k
信息熵滿足下列不等式:
0Ent(D)log2Y0\leqslant Ent(D) \leqslant log_2|Y|
Y代表樣本D中的類別數

證明信息熵的最值

在這裏插入圖片描述
在這裏插入圖片描述

ID3

信息增益: 假定離散屬性a有V個可能的取值{a1,a2,...,aV}\{a^1,a^2,...,a^V\},如果使用特徵a來對數據集D進行劃分,則會產生V個分支節點,其中第v個節點包含了數據集D中所有在特徵a上取值爲aVa^V的樣本總數,記爲DVD^V。再考慮到不同的分支節點所包含的樣本數量不同,給分支節點賦予不同的權重,這樣對樣本越多的分支節點的影響就會越大,因此,就能夠計算出特徵對樣本集合D進行劃分所獲得的“信息增益”:
Gain(D,a)=Ent(D)v=1VDvDEnt(Dv)Gain(D,a)=Ent(D)-\sum_{v=1}^V\frac{|D^v|}{|D|}Ent(D^v)
通俗來講,信息增益就是確定屬性a後整體樣本不確定性減少的程度,程度越大,則信息增益越高,程度越小則信息增益越小。

ID3算法的缺點

  1. ID3沒有考慮連續特徵。
  2. ID3採用信息增益大的特徵有限建立決策樹的節點,取值比較多的特徵比取值少的特徵,信息增益大。
  3. ID3算法對於缺失值的情況沒有考慮。
  4. 沒有考慮過擬合的問題。

例題

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

C4.5

增益率: 信息增益偏向於選擇取值較多的屬性,容易過擬合,基於信息增益的缺點,C4.5算法不直接使用信息增益,而是使用一種叫增益率的方法來選擇最優屬性進行劃分,對於樣本集合D中的離散屬性a,增益率爲:
Gain_ratio(D,a)=Gain(D,a)IV(a)Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)}
IV(a)是屬性a的固有值:
IV(a)=v=1VDvDlog2DvDIV(a)=-\sum_{v=1}{V}\frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|}

C4.5算法的缺點

  1. C4.5生成的是多叉樹,生成決策樹的效率較慢。
  2. C4.5只能用於分類。
  3. C4.5由於使用了熵模型,裏面有大量的耗時的對數運算。
  4. C4.5又偏向於選擇特徵取值較少的屬性。

爲避免ID3與C4.5算法各自對特徵數量的偏見,可以採用以下兩步降低影響
Step1: 從候選劃分屬性中找出信息增益高於平均水平的屬性。
Step2: 從Step1的結果中找出增益率最高的屬性作爲劃分屬性。

例題

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

CART

基尼值: 用於度量數據集的純度,Gini(D)反映了從數據集中隨機抽取兩個樣本,其類別標記不一致的概率。因此,Gini(D)越小,則數據集的純度越高。
假定當前樣本集合D中第k類樣本所佔的比例爲pk(k=1,2,...y)p_k(k=1,2,...|y|),則D的基尼值爲:
Gini(D)=k=1ykkpkpk=1k=1ypk2Gini(D)=\sum_{k=1}^{|y|}\sum_{{k}' \neq k}p_kp_{{k}'}=1-\sum_{k=1}^{|y|}p_k^2

基尼指數: 表示在樣本集合中一個隨機選中的樣本被分錯的概率。基尼指數越大,樣本的不確定性也就越大。
Gini_index(D,a)=v=1VDvDGini(Dv)Gini\_index(D,a)=\sum_{v=1}^{|V|}\frac{|D^v|}{|D|}Gini(D^v)

選擇劃分後使得基尼指數最小的屬性作爲最優劃分屬性。

注意

  1. CART採用的是二元切割法,最後生成的決策樹是一顆二叉樹。
  2. 對於屬性值爲離散的大於2類的情況,則會選擇其中一個取值,將依據屬性=a與屬性\neqa,劃分。最終將改屬性下的所有屬性取值遍歷一遍。
  3. 對於連續取值的情況可以依據值的大小排序,從小到大,取中間的數值作爲分裂點。
  4. CART不僅能處理分類問題,還能處理迴歸問題(本文僅針對分類問題做闡述)。

例題

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

總結

  1. ID3 只能處理離散型變量,C4.5和CART都可以處理連續型變量。
  2. ID3 和C4.5只能用於分類任務,CART還可用於迴歸任務。
  3. ID3和C4.5在生成決策樹時,可能產生多叉樹,而CART一定是二叉樹。

Reference

[1] 《機器學習》p73-p79
[2] 《統計學習方法》 p67-p87
[3] 《百面機器學習》 p61-p66
[4] https://blog.csdn.net/ACdreamers/article/details/44664481
[5] https://blog.csdn.net/baimafujinji/article/details/53269040#commentBox
[6] https://blog.csdn.net/zjsghww/article/details/51638126
[7] https://zhuanlan.zhihu.com/p/34534004

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章