1. 程式人生 > >模式識別筆記5-決策樹

模式識別筆記5-決策樹

關註 分布 加權 inf tro node cif 實例 數據集

1. 決策樹概覽

對於一個具有多個屬性的數據集,決策樹根據某種劃分決策,依據某個離散屬性對數據集進行劃分,形成子集,之後遞歸地對子集進行劃分,直到子集均屬於某一類別,或是在某個容忍度下屬於某種類比。

假設有樣本集合 \(D\),它有如下屬性:

  • \(m\) 個樣本

  • 屬性集合 \(A\) 具有 \(n\) 個離散屬性 \(\{a_1,a_2,\cdots,a_n\}\)
  • \(|\gamma|\) 種類別

對於決策樹的建立,首先要解決的是劃分。

2. 劃分依據

假設對於樣本集合的某個離散屬性 \(a\), 有 \(V\) 種可能的取值,那麽我們使用這個屬性對樣本集合進行劃分後,可以獲得 \(V\)

個子集,即 \(V\) 個分支節點。有3種常見的劃分依據可以選擇:

  1. 基尼指數 (Gini index)
  2. 信息增益 (information gain)
  3. 錯分誤差 (Misclassification error)

2.1 基尼指數(Gini Index)

CART決策樹使用基尼指數來選擇劃分屬性。

基尼指數使用基尼值來衡量一個集合的純度:
\[ \begin{align} \text{Gini}(D) &= \sum_{k=1}^{|\gamma|}\sum_{k‘\neq k}p_kp_{k‘}\&=1-\sum_{k=1}^{|\gamma|}p_k^2 \end{align} \]


直觀的來看,基尼值反映了從數據集中任意抽取兩個樣本,其類別標記不一樣的概率
顯然,基尼值越小,則數據集的純度越高。

據此,基尼指數定義為:
\[ \begin{align} \text{Gini_index}(D,a)=\sum_{v=1}^V\frac{|D_v|}{|D|}\text{Gini}(D_v) \end{align} \]
考慮到劃分的不同子集的個數不一樣,引入權重因子 \(\frac{|D_v|}{|D|}\), 樣本越多分支節點影響越大。

劃分決策:
在候選屬性集合 \(A\) 種,選擇那個使得劃分後基尼指數最小的屬性作為劃分屬性

2.2 信息增益(Information Gain)

ID3決策樹使用信息增益來作為劃分依據。

信息增益使用信息熵來衡量一個樣本集合的純度:
\[ \begin{align} \text{Entropy}(D) =\text{Ent}(D)=-\sum_{k=1}^{|\gamma|}p_k\log_2p_k \end{align} \]
當集合只有一個類別 \(k‘\) 的時候 \(p_{k\neq k‘}=0, p_{k‘}=1\),則
\[ \begin{align} \min \text{Ent}(D)=0 \end{align} \]
當集合中所有類別同概率分布的時候,\(p_1=p_2=\cdots=p_{|\gamma|}=\frac{1}{|\gamma|}\)
\[ \begin{align} \max \text{Ent}(D)=-|\gamma|\frac{1}{|\gamma|}\log_2{\frac{1}{|\gamma|}}=\log_2{|\gamma|} \end{align} \]
可以看到,\(\text{Ent}(D)\) 的值越小,則數據集的純度越高。

同樣,根據劃分子集進行加權,獲得信息增益:
\[ \begin{align} \text{Gain}(D,a)=\text{Ent}(D)-\sum_{v=1}^{V}\frac{|D_v|}{|D|}\text{Ent}(D_v) \end{align} \]
一般來說,信息增益越大,則意味著使用屬性 \(a\) 來劃分所獲得的 純度提升 越大。

劃分決策:
在候選集合 \(A\) 中,選擇那個使得劃分前後信息增益大的屬性

相比於基尼指數,信息增益關註劃分前後變化,而基尼指數只關註劃分後的集合純度。

2.3 錯分誤差

\[ \begin{align} error=1-\max \limits_k p(k|D) \end{align} \]

錯分誤差的純度判定比較粗暴,它衡量集合是否傾向於某一種分類。

根據公式(8)可以知道,如果集合\(D\)全是一類, 則 \(error=0\); 而如果集合均勻分布,則\(error_{max}=1-\frac{1}{|\gamma|}\)

3. 停止劃分

對於決策樹,第二個要解決的問題是什麽時候停止劃分

3.1 預剪枝(Pre-Pruning)

  • 如果當前集合的數目少於人為設定的閾值(user-specified threshold) , 則停止劃分
  • 如果當前的集合實例對於可選劃分數據獨立(使用卡方檢驗),則停止劃分
  • 如果當前集合劃分,對純度的沒有提升,則停止。

3.2 後剪枝(Post-Pruning)

  • 自下而上的方法來修剪決策樹(Trim nodes in a bottom-up fashion)
  • 如果泛化誤差(generalization error)得到改善,那麽用葉子節點代替子樹(驗證集)
  • 葉子節點的類標簽由子樹的多數樣本的標簽決定。

模式識別筆記5-決策樹