特征選擇(節點划分)
一般而言,隨着划分過程不斷進行,我們希望決策樹的分支結點所包含的樣本盡可能屬於同一類別,即結點的“純度”(purity)越來越高。
符號聲明
假設當前樣本集合\(D\)中第\(k\)類樣本所占的比例為\(p_k\:(k=1,2,...,|\mathcal Y|))\),離散屬性\(a\)有\(V\)個可能的取值\(\{a^1,a^2,...,a^V\}\),若使用\(a\)來對樣本集\(D\)進行划分,則會產生\(V\)個分支結點,其中第\(v\)個分支結點包含了\(D\)中所有在屬性\(a\)上取值為\(a^v\)的樣本,記作\(D^v\)。
樣本集合\(D\)的信息熵定義為
\[Ent(D)=-\sum_{k=1}^\mathcal{|Y|} p_k\log_2{p_k} \]
1. 信息增益
\[Gain(D,a) = Ent(D)-\sum_{v=1}^{V} \frac{|D^v|}{|D|}Ent(D^v)\tag{1} \]
實際上,信息增益准則對可取數目較多的屬性有所偏好。
2. 增益率
\(C4.5\)決策樹算法選擇增益率(gain ratio)來選擇最優划分屬性。
\[Gain\_ratio(D, a)=\frac{Gain(D,a)}{IV(a)} \tag{2} \\ s.t. \quad IV(a)=-\sum_{v=1}^{V}\frac{|D^v|}{|D|}\log_2\frac{|D^v|}{|D|} \]
\(IV(a)\)稱作屬性\(a\)的固有值(intrinsic value)。
需注意的是,增益率准則對可取值較少的屬性有所偏好,因此,\(C4.5\)算法並不是直接選擇增益率最大的候選划分屬性,而是使用了一個啟發式:先從候選划分屬性中找出信息增益高於平均水平的屬性,再從中選擇增益率最高的。
3. 基尼指數
\[\begin{aligned} \text{數據集$D$的純度:} \\ Gini(D) &= \sum_{k=1}^{\mathcal{|Y|}}\sum_{k' \neq k}p_k p_{k'}\\ &= 1-\sum_{k=1}^{\mathcal{|Y|}}p_k^{2} \end{aligned} \]
直觀來講,\(Gini(D)\)反映了從數據集\(D\)中隨機抽取兩個樣本,其類別標記不一致的概率。因此,\(Gini(D)\)越小,則數據集\(D\)的純度越高。
屬性\(a\)的基尼指數:
\[Gini\_index(D,a) = \sum_{v=1}^{V} \frac{|D^v|}{|D|}Gini(D^v) \tag{3} \]
於是,我們在候選屬性集合\(A\)中,選擇那個使得划分后基尼指數最小的屬性作為最優划分屬性,即:
\[a_* = \underset{a\in A}{\arg \min}\: Gini\_index(D,a) \]