官方 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:補上自編例子、完整計算或推理,以及理解檢查答案。
參考資料
Loading...