一般而言,隨著劃分過程不斷進行,我們希望決策樹的分支結點所包含的樣本盡可能屬於同一類別,即結點的「純度」(purity)越來越高。假設當前樣本集合\(d\)中第\(k\)類樣本所佔的比例為\(p_k\:(k=1,2,...,|\mathcal y|))\),離散屬性\(a\)有\(v\)個可能的取值\(\\),若使用\(a\)來對樣本集\(d\)進行劃分,則會產生\(v\)個分支結點,其中第\(v\)個分支結點包含了\(d\)中所有在屬性\(a\)上取值為\(a^v\)的樣本,記作\(d^v\)。
樣本集合\(d\)的資訊熵定義為
\[ent(d)=-\sum_^\mathcal p_k\log_2
\]\[gain(d,a) = ent(d)-\sum_^ \fracent(d^v)\tag
\]
實際上,資訊增益準則對可取數目較多的屬性有所偏好。\(c4.5\)決策樹演算法選擇增益率(gain ratio)來選擇最優劃分屬性。
\[gain\_ratio(d, a)=\frac \tag
\\s.t. \quad iv(a)=-\sum_^\frac\log_2\frac
\]\(iv(a)\)稱作屬性\(a\)的固有值(intrinsic value)。
需注意的是,增益率準則對可取值較少的屬性有所偏好,因此,\(c4.5\)演算法並不是直接選擇增益率最大的候選劃分屬性,而是使用了乙個啟發式:先從候選劃分屬性中找出資訊增益高於平均水平的屬性,再從中選擇增益率最高的。
\[\begin
\text \\
gini(d) &= \sum_^}\sum_p_k p_\\
&= 1-\sum_^}p_k^
\end
\]
直觀來講,\(gini(d)\)反映了從資料集\(d\)中隨機抽取兩個樣本,其類別標記不一致的概率。因此,\(gini(d)\)越小,則資料集\(d\)的純度越高。屬性\(a\)的基尼指數:
\[gini\_index(d,a) = \sum_^ \fracgini(d^v)
\tag
\]
於是,我們在候選屬性集合\(a\)中,選擇那個使得劃分後基尼指數最小的屬性作為最優劃分屬性,即:\[a_* = \underset\: gini\_index(d,a)
\]
決策樹 特徵選擇
決策樹的特徵選擇標準有兩種 資訊增益,資訊增益比 0.熵指不穩定程度。熵越大,不穩定程度越高,則越容易 決策樹中也指某結點內含資訊量較多,分類能力較差.計算公式 其中,pi為隨機變數x在樣本空間的分布,即第i個型別出現的概率。為i到n求和。n為特徵取值種類數量.ps 為何使用這樣的乙個函式?xlog...
使用決策樹進行特徵選擇
使用決策樹進行特徵選擇 決策樹也是常用的特徵選取方法。使用決策樹集合 如隨機森林等 也可以計算每個特徵的相對重要性。這些重要性能夠輔助進行特徵選擇。該方法主要使用資訊增益率來進行特徵選擇。from sklearn import datasets from sklearn import metrics...
決策樹選擇
資訊增益 偏向取值較多的特徵 資訊增益比 偏向取值較少的特徵 基尼 被選中的概率乘以被分錯的概率 資訊增益準則對那些屬性的取值比較多的屬性有所偏好,也就是說,採用資訊增益作為判定方法,會傾向於去選擇屬性取值比較多的屬性。那麼,選擇取值多的屬性為什麼就不好了呢?舉個比較極端的例子,如果將身份證號作為乙...