ID3.5
信息熵(entropy)
度量樣本集合“不純度”或者“混亂程度”的最常用指標,熵值越大,混亂程度越大,純度越低;熵值越小,混亂程序越小,純度越高;
Ent(D)=−k=1∑∣y∣pklog2pk
其中D爲樣本集,∣y∣爲類別總數,k爲當前類別號,pk爲k類別在整個樣本集中出現的概率。計算信息熵時約定:若p=0,則plog2p=0;
當樣本集合中k類樣本出現的概率pk相等時,熵值最大,最大值log2∣y∣,即混亂程度最大,純度最低;相反,當樣本集合中全是一個類別,熵值最小,最小值爲0,純度最高,混亂程度最低。
信息增益
信息增益直接以信息熵爲基礎,計算以某個屬性劃分對信息熵造成的變化,即讓信息熵增大或者減小了,當然我們要選一個讓熵值下降最多的屬性去做劃分,做決策樹的目的就是使樹往熵值更小的方向走。
樣本的離散屬性a={a1,a2,...,aV},如經典的西瓜集的“色澤”屬性{青綠,烏黑,淺白}。
Dv:D在a上取值爲av的樣本集合,即D中屬性爲av的樣本集合,注意是個集合,如西瓜中色澤屬性爲烏黑的子集。
以屬性a對樣本集D進行劃分的話,我們獲得的信息增益爲:
Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)
信息增益Gain(D,a)評判在a屬性上劃分前後,信息熵能減少多少,即劃分後純度能提高多少
C4.5
信息增益率
ID3缺點就是選擇的時候容易選擇一些比較容易分純淨的屬性,尤其在具有像ID值這樣的屬性,因爲每個ID都對應一個標籤,所以分的很純淨,ID3比較傾向找到這樣的屬性做分裂。
C4.5定義了信息增益率Gain_ratio()避免了這個缺點
Gain_ratio(D,a)=IV(D,a)Gain(D,a)
IV(D,a)=v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣
屬性a的類別越多(即V越大),則IV(D,a)的值通常就越大。
其實可以看出上面IV(D,a)公式和信息熵公式Ent(D)是一樣的,集合裏面越混亂,值越大,同時最大值爲log2∣y∣,在這裏∣y∣=∣V∣即屬性a下面的類別,類別數越多分佈越平均,IV(D,a)值越大,使得Gain_ratio(D,a)值越小。
啓發式:先從候選劃分屬性中找出信息增益高於平均水平的,之後在從中選擇信息增益率最高的作爲下一個分裂的屬性
C4.5與ID3.5很像,只是前者選擇了信息增益率來作爲屬性選擇的判定標準。
CART
基尼指數
基尼指數反應了從樣本集D中有放回的隨機抽取兩個樣例,其類別標記不一樣的概率。Gini(D) 越小,抽取的兩個樣本類別不一樣的概率越小,一樣的概率越大,即樣本集D純度越高。
Gini(D)=k=1∑∣y∣k′=k∑pkpk′=1−k=1∑∣y∣pk2
該公式很好的代表了摸兩次球類別不同的概率,第一個等號後的式子表示兩次摸球均不同的概率和,如三個小球,摸到12,13,21,23,31,32的概率之和;第二個等號後面的式子表示用總概率和1減去兩次摸球都相同的概率,即1減去摸到11,22,33球的概率,二者相等。
顯然,當集合D中的數據類別都相同時,兩次摸到相同類別的球的概率就大,Gini(D)就小,反之,當集合中類別很多且分佈均勻時,Gini(D)值就大。
我們對集合中的每一個屬性a都計算該屬性下的基尼指數Gini_index(D,a),找出基尼指數最小的屬性,首先分裂它。
Gini_index(D,a)=v=1∑∣V∣∣D∣∣Dv∣Gini(Dv)
需要注意的是:CART是一個二叉樹即無論a屬性下有幾個分支,都會化成二叉樹計算對應的Gini_index(D,a),然後來評估優先分裂哪個屬性,例如屬性a有三個類別A,B,C,CART對屬性a計算時,會將類別分成(A,非A(即BC)),(B,非B),(C,非C)來分別計算屬性a的基尼係數,最終用最小的方案來建樹。建樹完成後就進行第二步了,即根據驗證數據進行剪枝。詳細參考這裏
基尼指數與熵泰勒展開後的相似性
基尼指數:
Gini(D)=k=1∑∣y∣k′=k∑pkpk′=1−k=1∑∣y∣pk2
熵:
Ent(D)=−k=1∑∣y∣pklog2pk
將log2約等於ln,熵公式等於Ent(D)=∑k=1∣y∣−pklnpk
−lnx在x=1處泰勒展開約等於1−x,代入上式可以得到:
Ent(D)=k=1∑∣y∣−pklnpk=k=1∑∣y∣pk(1−pk)=k=1∑∣y∣pk−k=1∑∣y∣pk2=1−k=1∑∣y∣pk2
到此,可以得到,基尼指數與熵值公式是非常接近的。