Skip to content

從資訊量手算到完整 Decision Tree|CMU 10-301 作業 2

2026年8月22日1 分鐘
TL;DRHW2 要先用 entropy 與 mutual information 手算切分,再完成建樹、預測與評估的端到端分類器。

🌏 English version

官方 handout 完整題名是 Homework 2: Decision Trees,屬於 written+programming。Written 包含 function approximation、decision-tree calculations、pseudocode 與 empirical questions;程式分成 inspection.py 的 entropy/majority-error 檢查,以及 decision_tree.py 的建樹、預測、評估與文字樹輸出。ZIP 提供 decision_tree.py starter、heart/purchase/small datasets,以及 small depth-3 的 labels、metrics、inspection reference output。

作業為什麼這樣排

手算迫使你看見「選哪個 feature」的依據,程式則暴露停止條件、tie-breaking 與深度限制。真正的模型不是一個公式,而是一組必須一致的決策。先用 small dataset 畫樹,再讓程式輸出同一棵;兩者不同時,不要先調參數。

第一個可執行動作與完成判準

先依 handout 指令 建立並跑 inspection:

python inspection.py small_train.tsv small_inspect.txt

完成判準是 small_inspect.txt 與公開 reference 一致,且 depth-3 tree 的 train/test labels、metrics 與文字樹可重現;再用完美可分、全同特徵與同分 feature 三組自造資料驗證停止與 tie-breaking。Gradescope 仍會使用未公開資料。

手算一次完全切分

以下是本文自編的教學例子,不是官方作業答案。

自編四筆標籤為 0、0、1、1,兩類各半,entropy 是 -0.5 log₂0.5-0.5 log₂0.5=1 bit。假設某 feature 把兩個 0 分到左邊、兩個 1 分到右邊,兩個子節點都純,entropy 為零,資訊增益就是 1-0=1 bit。

檢查與答案: 若左右各含一個 0 和一個 1,資訊增益是多少?答案零:加權子節點 entropy 仍為 1 bit。相同增益的 tie-breaking 另依 handout。

更新紀錄

  • 2026-10-11:補上自編例子、完整計算或推理,以及理解檢查答案。

參考資料