基礎概念
什麼是信息熵?
熵是度量樣本集合純度最常用的一種指標,代表一個系統中蘊含有多少信息量,信息量越大表明一個系統不確定性越大,就存在越多的可能性,即信息熵越大。
假定當前樣本集合D中第k類樣本所佔的比例爲,則D的信息熵爲:
信息熵滿足下列不等式:
Y代表樣本D中的類別數
證明信息熵的最值
ID3
信息增益: 假定離散屬性a有V個可能的取值,如果使用特徵a來對數據集D進行劃分,則會產生V個分支節點,其中第v個節點包含了數據集D中所有在特徵a上取值爲的樣本總數,記爲。再考慮到不同的分支節點所包含的樣本數量不同,給分支節點賦予不同的權重,這樣對樣本越多的分支節點的影響就會越大,因此,就能夠計算出特徵對樣本集合D進行劃分所獲得的“信息增益”:
通俗來講,信息增益就是確定屬性a後整體樣本不確定性減少的程度,程度越大,則信息增益越高,程度越小則信息增益越小。
ID3算法的缺點
- ID3沒有考慮連續特徵。
- ID3採用信息增益大的特徵有限建立決策樹的節點,取值比較多的特徵比取值少的特徵,信息增益大。
- ID3算法對於缺失值的情況沒有考慮。
- 沒有考慮過擬合的問題。
例題
C4.5
增益率: 信息增益偏向於選擇取值較多的屬性,容易過擬合,基於信息增益的缺點,C4.5算法不直接使用信息增益,而是使用一種叫增益率的方法來選擇最優屬性進行劃分,對於樣本集合D中的離散屬性a,增益率爲:
IV(a)是屬性a的固有值:
C4.5算法的缺點
- C4.5生成的是多叉樹,生成決策樹的效率較慢。
- C4.5只能用於分類。
- C4.5由於使用了熵模型,裏面有大量的耗時的對數運算。
- C4.5又偏向於選擇特徵取值較少的屬性。
爲避免ID3與C4.5算法各自對特徵數量的偏見,可以採用以下兩步降低影響
Step1: 從候選劃分屬性中找出信息增益高於平均水平的屬性。
Step2: 從Step1的結果中找出增益率最高的屬性作爲劃分屬性。
例題
CART
基尼值: 用於度量數據集的純度,Gini(D)反映了從數據集中隨機抽取兩個樣本,其類別標記不一致的概率。因此,Gini(D)越小,則數據集的純度越高。
假定當前樣本集合D中第k類樣本所佔的比例爲,則D的基尼值爲:
基尼指數: 表示在樣本集合中一個隨機選中的樣本被分錯的概率。基尼指數越大,樣本的不確定性也就越大。
選擇劃分後使得基尼指數最小的屬性作爲最優劃分屬性。
注意
- CART採用的是二元切割法,最後生成的決策樹是一顆二叉樹。
- 對於屬性值爲離散的大於2類的情況,則會選擇其中一個取值,將依據屬性=a與屬性a,劃分。最終將改屬性下的所有屬性取值遍歷一遍。
- 對於連續取值的情況可以依據值的大小排序,從小到大,取中間的數值作爲分裂點。
- CART不僅能處理分類問題,還能處理迴歸問題(本文僅針對分類問題做闡述)。
例題
總結
- ID3 只能處理離散型變量,C4.5和CART都可以處理連續型變量。
- ID3 和C4.5只能用於分類任務,CART還可用於迴歸任務。
- 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