讀《Decision Trees》:從熵、資訊增益到決策樹不穩定性的深度理解

本篇文章更新時間: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 的分裂準則)背後的核心精神。

如果你正在入門機器學習或想補強直覺,我真心推薦搭配原文動畫一起閱讀。許多抽象概念在圖形化後變得相當容易吸收,也更能理解決策樹究竟「在想什麼」。



Share:

作者: Chun

WordPress 社群貢獻者、開源社群推廣者。專注於 WordPress 外掛開發、網站效能最佳化、伺服器管理,以及 iDempiere 開源 ERP 導入與客製開發。曾參與 WordCamp Taipei 等社群活動,GitHub Arctic Code Vault Contributor。提供資訊顧問、WordPress 開發教學、主機最佳化與企業 ERP 整合服務。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Mastodon