本文所用符號:算法
使用信息熵\[Ent(D)=-\sum_{k=1}^Vp_klog_2p_k\]度量樣本合集純度,\(Ent(D)\)越大,純度越低。用a對樣本分類後,信息增益
\[Gain(D,a)=Ent(D)-\sum_{v=1}^V \frac{|D^v|}{|D|}Ent(D^v)\]越大說明使用a做爲劃分類別對樣本劃分後純度提升越多,其中\(\sum_{v=1}^V \frac{|D^v|}{|D|}Ent(D^v)\)表示劃分後的每一個子集的信息熵的加權和。 選擇使信息增益最大化的劃分類別如a對樣本進行第一次劃分後,造成v個子樣本:{\(D^1,D^2 \cdots,D^v\)},再對每一個子樣本用相同的方法繼續劃分便可,如對\(D^1\)劃分:選擇除a以外的類別屬性b和c,分別計算\(Gain(D^1,b)\)和\(Gain(D^1,c)\),最後選擇使結果值較大的類別屬性進行劃分。使用信息增益法劃分子集的算法叫作ID3決策樹算法。機器學習
信息增益法對可取值較多的類別劃分屬性有所偏好,可能影響模型的泛化能力,C4.5決策樹算法中使用「增益率」選擇最優劃分屬性。增益率定義:\[gain_ratio(D,a)=\frac{Gain(D,a)}{IV(a)}\],其中\[IV(a)=-\sum_{v=1}^V\frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|}\],爲何分母是這樣子?但願有時間能看下《信息論》,可是能夠粗淺地看出,a的取值可能性越多,\(IV(a)\)越大(假設a只有一個取值,那麼IV(a)爲0;取兩個值且各佔一半,IV(a)爲 \(-log_2\frac{1}{2}\);取三個值且各佔三分之一,IV(a)爲\(-log_2\frac{1}{3}\)),正好起到調停做用。學習
增益率對可取值數量較小的類別屬性有所偏好,實際計算中,先選出信息增益高於平均值的若干個類別屬性,而後再從中選擇增益率較高的屬性做爲分類屬性spa
CART決策樹算法使用基尼指數,其定義爲:\[Gini(D)=\sum_{k=1}^{|y|}\sum_{k' \neq k} p_kp_{k'}=1-\sum_{k=1}^{|y|}p_k^2\],基尼指數表示從D中隨機取出兩個樣本其標記不一致的機率,此機率越低,說明純度越高。io
類別屬性a的基尼指數定義爲\[Gini_index(D,a)=\sum_{v=1}^V\frac{|D^v|}{|D|}Gini(D^v)\],選擇基尼指數最小的屬性做爲劃分屬性。class
參考:方法