本篇文章更新時間:2026/03/02
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持 。
內容目錄
決策樹真正聰明的地方不在分叉,而在它怎麼決定分叉
副標題:讀 MLU Explain 的《Decision Trees》有感
編輯前言:這篇文章以極清晰的方式拆解「熵是什麼」、「資訊增益怎麼算」以及 ID3 決策樹如何真正做出每一次的分裂。對初學者和想補強直覺的人都非常值得一讀。本文靈感來自原文:Decision Trees。
核心觀點 (Key Takeaways)
- 熵(Entropy)量化資料的「混亂度」,越純粹(單一類別)越低、越混雜越高。
- 決策樹透過「資訊增益(Information Gain)」來選出最佳分裂點,核心算法是 ID3。
- 決策樹容易過度擬合且高度不穩定,微小資料擾動就可能導致完全不同的樹。
深入解析
在理解決策樹之前,筆者認為最關鍵的基礎概念是熵。原文引用 Shannon 的公式:
"Entropy vanishes only when there is no uncertainty in the outcome."
換句話說,如果一個節點全是同一類,熵就是 0;如果各類比例接近,熵就高。這種「對純度的敏感性」正是決策樹用來判斷應該怎麼切割資料的指標。
1. 熵:衡量「這裡有多混亂?」
原文用視覺化例子展示:當一個節點裡塞滿不同類別,熵就接近最大值;若全是正類或負類,熵為 0。這讓我們可以用一個數字描述「節點是否值得再切」。
2. 資訊增益:衡量「切下去值得嗎?」
ID3 算法會在每一層嘗試所有可能切法,計算:
父節點的熵 − 子節點加權平均後的熵
減得越多,代表混亂度下降越多,也就是最有意義的分割。原文以「Diameter ≤ 0.45」為例,這個分裂點之所以被選出,就是因為它帶來最大資訊增益 0.574。
3. 決策樹天生不穩定:對微小變動極度敏感
原文展示了一個令人印象深刻的例子:只對 5% 的資料加上高斯噪音,就能產生完全不同的決策樹。這正是決策樹的「高變異」本質。
因此我們常見的做法是:
- 設定最大深度
- 要求葉節點最少樣本數
- 使用剪枝方法避免模型過度複雜
但根本解法其實是:
把很多顆不穩定的樹集合起來,平均結果 —— 也就是 Random Forest。
這也是為什麼原文最後以「請期待我們的 Random Forest 介紹」作為收尾。
筆者心得與啟發
讀完這篇文章,我最大的感受是:決策樹其實不是我們以為的那麼「直覺」。雖然它的可視化讓它看起來像人類判斷的流程,但底層卻依賴嚴謹的資訊論邏輯。
幾個反思:
- 過去我常聽到「決策樹容易 overfit」,但實際理解熵如何被遞迴最小化後,就能理解它為何天生想把資料切到最細(直到純為止)。
- 在資料科學更實務的場景,如果沒有用集成方法(如 Random Forest、Gradient Boosting),單一決策樹幾乎無法穩定使用。
- 熵與資訊增益雖是基礎,但也是之後許多模型(例如 XGBoost 的分裂準則)背後的核心精神。
如果你正在入門機器學習或想補強直覺,我真心推薦搭配原文動畫一起閱讀。許多抽象概念在圖形化後變得相當容易吸收,也更能理解決策樹究竟「在想什麼」。
