1. 決策樹
1.1 決策樹簡介
決策樹(Decision Tree)是一種以 樹形資料結構 來展示決策規則和分類結果的模型。每一條從根結點(對最終分類結果貢獻最大的屬性)到葉子結點(最終分類結果)的路徑都代表一條決策的規則。
1.2 決策樹的構建過程
-
首先生成一個 根節點,其 包含所有的樣本。
-
判斷劃分:
-
若 當前節點中所有樣本 都屬於 同一類別 \(C\)。此時 無需再進行劃分,此節點 標記為 \(C\) 類別的葉子節點。
-
若 資料為空,此時 無法進行劃分,此節點 標記為 \(D\) 中樣本最多的類。
-
-
選擇當前條件下的 最優屬性進行劃分。
-
經歷上步驟劃分後,生成新的節點。
繼續迴圈判斷,不斷生成新的分支節點,直到所有節點都跳出迴圈。
最後生成一顆決策樹。
2. 最優劃分屬性的選擇
2.1 資訊增益
2.1.1 基本概念
-
資訊熵
熵 用來衡量一個隨機變數取值的不確定程度,設 \(X\) 是一個取有限個值(\(m\) 類)的離散隨機變數,其機率分佈為:
\[P(X = x_i) = p_i, \ i = 1, \ldots, m \]則隨機變數 \(X\) 的熵定義為:
\[\text{Ent}(X) = -\sum_{i=1}^{m}p_i \log p_i \]當 \(p_i = 0\) 時,定義 \(0 \log 0 = 0\)。
當 \(\log\) 以 \(2\) 為底,此時熵的單位為位元 \(\text{bit}\);
當 \(\log\) 以 \(e\) 為底,此時熵的單位為納特 \(\text{nat}\)。
-
資訊熵的性質
熵只依賴於隨機變數的分佈。
對於一個有 \(m\) 個取值的隨機變數 \(X\),可以證明:
-
當 \(p_1 = p_2 = \cdots = p_m = \frac{1}{m}\) 時,也就是 所有機率相等 時,\(X\) 的熵取得最大值 \(\log m\)。
-
當 \(p_i = 1, \ \forall i \not = j, \ p_j = 0\) 時,\(X\) 的熵取得最小值 \(0\)。
熵越大,表明隨機變數 \(X\) 的取值的 不確定性越大。
-
-
條件熵 \(\text{Ent}(X|Y)\)
衡量隨機變數 \(Y\) 的取值已知的條件下,隨機變數 \(X\) 取值的不確定性:
\[\text{Ent}(X|Y) = \sum_{i=1}^{m}P(Y = y_i)\text{Ent}(X|Y=y_i) \]
-
資訊增益 \(gain(X, Y)\)
表示在得知 \(Y\) 後,隨機變數 \(X\) 不確定性減少的程度,也是 確定性增加的程度:
\[gain(X, Y) = \text{Ent}(X) - \text{Ent}(X|Y) \]
2.1.2 基於資訊增益學習決策樹
在決策樹中,將樣本類別看作是一個隨機變數。對於一個 \(c\) 類的分類問題,類別變數的分佈為:
記 \(p_i = P(\text{class} = i)\),則類別變數的熵為:
將類別變數的熵稱為 訓練集 \(D\) 的熵,記為 \(\text{Ent}(D)\)。
假設選取了屬性 \(a\) 對樣本進行劃分,屬性 \(a\) 有 \(k\) 個不同的取值 \(\{ a^{(1)}, a^{(2)}, \cdots, a^{(k)} \}\),樣本集 \(D\) 對應劃分成 \(k\) 個子集 \(D_1, D_2, \ldots, D_k\)。
用 \(|D_i|\) 表示屬性 \(a\) 取值為 \(a_i\) 的對應的劃分出來的 \(D_i\) 的大小。
選擇 \(a\) 屬性對樣本集 \(D\) 進行劃分產生的 資訊增益:
而選擇的 最優劃分屬性 是資訊增益最大的屬性(增加確定性最多):
例題 1
解:
例題 2
設 \(X\) 是一個離散型隨機變數,其機率分佈為:
求 \(X\) 的 熵的最大值,其中熵以 納特 為單位。
未完待續...