模式識別筆記5-決策樹
1. 決策樹概覽
對於一個具有多個屬性的數據集,決策樹根據某種劃分決策,依據某個離散屬性對數據集進行劃分,形成子集,之後遞歸地對子集進行劃分,直到子集均屬於某一類別,或是在某個容忍度下屬於某種類比。
假設有樣本集合 \(D\),它有如下屬性:
\(m\) 個樣本
- 屬性集合 \(A\) 具有 \(n\) 個離散屬性 \(\{a_1,a_2,\cdots,a_n\}\)
\(|\gamma|\) 種類別
對於決策樹的建立,首先要解決的是劃分。
2. 劃分依據
假設對於樣本集合的某個離散屬性 \(a\), 有 \(V\) 種可能的取值,那麽我們使用這個屬性對樣本集合進行劃分後,可以獲得 \(V\)
- 基尼指數 (Gini index)
- 信息增益 (information gain)
- 錯分誤差 (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-決策樹