歡迎來到決策樹的世界!

你好!今天我們將深入探討 Exam PA 當中最直觀且具視覺化的部分:決策樹(Decision Trees)。如果你曾經玩過「20 個問題」猜謎遊戲,或者曾依照流程圖來排解網絡連線問題,那你其實已經掌握了決策樹的基本邏輯。在本章中,我們將學習如何建立決策樹、如何避免它們變得過於「天馬行空」,以及如何確保模型能應用於未曾見過的新數據。如果剛開始覺得有點技術性也不用擔心——我們會一步步為你拆解!

1. 建立決策樹:遞迴二元分割法

當我們建立決策樹時,目標是將數據切分成更小、更「純」的組別。這個過程稱為遞迴二元分割(Recursive Binary Splitting)。試著把它想像成你在分類洗滌衣物:你可能會先按顏色分類(白色 vs. 彩色),然後再根據材質將彩色衣物進行細分。

運作方式(步驟詳解):

1. 從頂部開始:我們從包含所有觀測值的一個大組(根節點,Root Node)開始。
2. 尋找最佳分割點:我們檢視每一個預測變數(predictor variable)以及所有可能的「分割點」(例如:年齡 < 30 vs. 年齡 ≥ 30)。
3. 目標:我們選擇能使「不純度(impurity)」降低最多的分割方式。我們希望最終形成的組別(葉節點,leaves)盡可能地相似。
4. 重複步驟:我們對每一個新產生的分支重複上述步驟。這就是為什麼它被稱為「遞迴(recursive)」的原因。

衡量成功(數學部分)

我們如何判斷一個分割是否「優秀」?這取決於我們的預測目標:

針對迴歸樹(預測數值):
我們使用殘差平方和(Residual Sum of Squares, RSS)。我們想找到能使以下式子最小化的分割: \( \sum (y_i - \hat{y}_{R})^2 \) 解讀:我們希望在該組別內的實際數值,盡可能地接近該組的平均值。

針對分類樹(預測類別):
我們使用諸如吉尼指數(Gini Index)熵(Entropy)之類的指標。
- 吉尼指數: \( G = \sum_{k=1}^{K} \hat{p}_{mk}(1 - \hat{p}_{mk}) \)
- 熵: \( D = -\sum_{k=1}^{K} \hat{p}_{mk} \log \hat{p}_{mk} \)
當節點「純度」很高(意即該組中幾乎所有樣本都屬於同一個類別)時,這兩個指標的數值都會很低。

快速回顧:分割是貪婪(greedy)的。這意味著模型會在當前步驟做出最佳決策,而不考慮該分割是否會引導未來五個步驟後產生更好的整棵決策樹。

2. 生長過大的危險:過度擬合(Overfitting)

如果我們讓決策樹持續生長,直到每個觀測值都成為一個獨立的微小葉節點,我們在訓練數據上的誤差將會是 0%。聽起來很棒,對吧?錯了!這就是典型的過度擬合(Overfitting)

類比:想像一下,與其理解底層概念,你卻死背練習題中的每一個具體問題與答案。當正式考試出現稍微不同的題目時,你會因為學到的只是「雜訊」而非「規律」而慘遭滑鐵盧。

停止規則(超參數,Hyperparameters)

為了防止決策樹變成一團混亂、過度擬合的龐然大物,我們使用「停止規則」:
- minbucket:葉節點內允許的最少觀測值數量。如果某次分割產生的組別小於此數值,則該分割不被允許。
- maxdepth:決策樹允許的最大「層級」數。
- cp(複雜度參數,Complexity Parameter):一個閾值,用於衡量誤差必須改進多少,才足以證明進行下一次分割的合理性。

3. 修剪:精簡決策樹

即使有了停止規則,通常更好的做法是先讓決策樹長得很大,然後再進行「修剪」。這稱為代價複雜度修剪(Cost Complexity Pruning)(或稱最弱連結修剪)。

我們使用一個公式來評分決策樹: \( R_{\alpha}(T) = R(T) + \alpha |T| \) - \( R(T) \) 是誤差(例如 RSS)。
- \( |T| \) 是終端節點的數量(決策樹的大小)。
- \( \alpha \)(Alpha):這是複雜度的「懲罰項」。

取捨平衡:
- 若 \( \alpha = 0 \),懲罰為零,我們將得到一棵巨大且複雜的樹。
- 當 \( \alpha \) 增加,擁有更多葉節點的懲罰隨之增加,迫使決策樹變得更小、更簡單。

你知道嗎?在 R 語言的 rpart 套件中,複雜度參數 cp 與此處的 \(\alpha\) 直接相關。更高的 cp 代表決策樹更小!

4. 驗證:選擇最佳決策樹

我們如何選擇完美的修剪程度(最佳的 \(\alpha\))?我們使用 K 折交叉驗證(K-fold Cross-Validation)

流程:
1. 將數據分成 10 等分(folds)。
2. 用 9 等分進行訓練,並在第 10 等分上進行測試。
3. 針對不同大小的決策樹重複上述過程。
4. 選擇交叉驗證誤差最低的那個大小。

1-SE 規則

在 Exam PA 中,你常會聽到 1-SE 規則。與其選擇表現絕對最好的樹,我們選擇在最小誤差的一個標準誤(Standard Error)範圍內,最小(最簡單)的那棵樹
為什麼呢?因為在精算領域中,我們偏好簡約性(parsimony)。模型越簡單,越不容易過度擬合,也更容易向利害關係人進行解釋!

5. 總結與關鍵要點

- 決策樹是使用遞迴二元分割建立的,這是一種「貪婪」的方法。
- 迴歸樹最小化 RSS分類樹最小化 Gini 指數
- 當決策樹過於複雜並捕捉到雜訊而非訊號時,就會發生過度擬合
- 修剪使用代價複雜度來尋找精確度與簡約性之間的平衡。
- 交叉驗證幫助我們挑選決策樹的最佳版本。
- 記住:cp = 小樹;低 cp = 大樹。

常見錯誤提醒:不要混淆 minbucketminsplitminsplit 是「嘗試」分割所需的觀測值數量,而 minbucket 是分割後產生的葉節點中必須「保留」的觀測值數量。

繼續加油!基於樹的模型是更進階技術(如隨機森林和提升法)的基礎。掌握好這些基本功,你就已經成功了一半!