本文所用符號:
- \(D\):所有樣本,如《西瓜書》中所有的西瓜樣本
- \(a\):用來划分樣本的類別屬性,a有V個可取值{\(a^1,a^2 \dots , a^V\)},如若用a表示“色澤”,則a的取值是{\(a^1=青綠,a^2=烏黑,a^3=淺白\)},此時\(V=3\)
- \(D^v\):用a對樣本D進行划分后屬於\(a^v\)的樣本子集
- \(|y|\):\(y\)屬性可取個數,下文中用y表示模型最終划分的結果集,如西瓜書中的{好瓜,壞瓜}
信息增益
使用信息熵$$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}$),正好起到調停作用。 增益率對可取值數量較小的類別屬性有所偏好,實際計算中,先選出信息增益高於平均值的若干個類別屬性,然后再從中選擇增益率較高的屬性作為分類屬性 ## 基尼指數 CART決策樹算法使用基尼指數,其定義為:$$Gini(D)=\sum_{k=1}^{|y|}\sum_{k' \neq k} p_kp_{k'}=1-\sum_{k=1}^{|y|}p_k^2$$,基尼指數表示從D中隨機取出兩個樣本其標記不一致的概率,此概率越低,說明純度越高。 類別屬性a的基尼指數定義為$$Gini_index(D,a)=\sum_{v=1}^V\frac{|D^v|}{|D|}Gini(D^v)$$,選擇基尼指數最小的屬性作為划分屬性。 --- 參考: - 《機器學習》周志華著 - 《機器學習工程師》網易雲課堂出品\]
