KEMBAR78
Supervised learning in decision tree algorithm | PDF
國立臺北護理健康大學 NTUNHS
監督式學習
(Decision Tree)
Orozco Hsu
2025-04-18
1
About me
2
• Education
• NCU (MIS)、NCCU (CS)
• Experiences
• Telecom big data Innovation
• Retail Media Network (RMN)
• Customer Data Platform (CDP)
• Know-your-customer (KYC)
• Digital Transformation
• LLM Architecture & Development
• Research
• Data Ops (ML Ops)
• Generative AI research
• Business Data Analysis, AI
Tutorial
Content
3
演算法介紹 (決策樹)
作業
監督式學習
模型評估
Code
• Sample code
• https://drive.google.com/drive/folders/1bVC71e_7dQ97XB0JhZ1Wt8cEllOT0h
Fi?usp=sharing
4
監督式學習
• 需要標籤 (Label) 數據的機器學習
• 監督式學習依賴標籤,模型從標記數據中學習自變數與應變數的映射關係
• 主要技術
• 包括分類 (Classification)、回歸 (Regression)、神經網路 (Neural Network) 與集成學習 (Ensemble)
• 常見演算法
• 決策樹 (Decision Tree)、支援向量機 (SVM)、線性回歸 (Linear Regression)、羅吉斯回歸 (Logistic
Regression)、類神經網路 (Artificial Neural Network)、隨機森林 (Random Forest)
• 應用場景
• 分類問題: 疾病診斷、天氣預測、影像分類、垃圾郵件檢測等
• 數值預測: 股票價格
6
數據視覺化 (敘述型統計)
• 連續變數
• 數據大部分呈現一連串不同的數字,且【重複性不高】,例如: 高中生的
身高資料為165、178、173…,不同數字且【可計算】
• 類別變數
• 數據僅有少數幾個值,此值【不具計算意義】而是具有代表某種狀態的
結果,例如: 高中生的性別男與女,僅有兩種結果,代表不同的性別
7
數據視覺化 (敘述型統計)
8
連續變數
類別變數 (長條圖/ Bar Chart)
數據視覺化 (敘述型統計)
• 若資料中兩個主要變數皆為【數值型】,建議使用連續型數據視覺化方法,如: 離散圖
• 若其中一個為【類別型】變數,則應考慮使用同時具有類別連續視覺化方式,如: 盒鬚圖
9
何謂決策樹
• 決策樹是使用可以【Yes or No】回答的條件進行預測的方法。
• 由於接近人類的思考程序,此方法得到的結果容易理解。
• 在決策樹中,【條件】的部分稱為【節點】、內部節點(node),
最上面的節點稱為【根節點 (Root)】。
• 表示決策樹分類的末節點稱為【葉子節點 (leaf)】,代表一個
【類別】。
10
11
何謂決策樹
12
何謂決策樹
• 一般來說,可以進行【分類預測】、也可以進行
【數值預測】
• 決策樹的進階版是【隨機森林】,集成多棵決策樹
• 結合多個【弱學習器】建構一個更強的模型,這種方法又
稱 【Ensemble】
13
https://blog.csdn.net/sddchina/article/details/45484757
Leo Breiman 提出
CART, 隨機森林, Bagging 演算法
何謂決策樹
• 針對特徵值本身定義條件分類,所以會得到【稜稜角角】的結果。
14
氣溫 < 15 度
氣溫 > 25 度
濕度 < 40%
濕度 > 60%
不舒適
不舒適
不舒適
不舒適 舒適
No
Yes
No
Yes
No
Yes
No
Yes
氣溫對於舒適的重要性 > 濕度
何謂決策樹
• 分類問題
15
濕度%
溫度 C
舒適
不舒適
60
40
15 25
已經可以看出有預測的感覺了!
何謂決策樹
參考: https://sharkyun.medium.com/decision-tree-%E6%B1%BA%E7%AD%96%E6%A8%B9-41597818c075
9
何謂決策樹
• 每一個區塊都有正、負樣本
• 計算每一區的正、負樣本佔比
• 第一區: 5/6
• 第二區: 8/12
• 第三區: 3/10
• 第四區: 1/4
17
補充
• 回歸問題時,葉子節點為【數值】
• 平均值
• 眾數
• 中位數
19
決策樹特色
• 計算【速度較快】
• 數據前處理【較少】
• 容易受到樣本不平衡影響 (應變數),要事先處理才行
• Over-sampling (Synthetic Minority Oversampling Technique)
• Under-sampling
• 【很高】的可解釋性,透過視覺化分析,容易提取出規則
• 模型結果就是【條件結果】,搭配 SQL 語法可日後直接取出資料
20
分裂變數的基準
• 如何建構一顆決策樹? 其實就是探討【變數的重要性】
• 透過觀察每個變數在分裂時對資料純度的貢獻程度
• 例如: 計算 entropy,來衡量該變數的重要性
23
• 1948年 Shannon 發表了通訊的數學原理,奠定了現代資訊理論
的基礎,其中就談到【資訊熵】的概念,解決了資訊的【量化】
問題。
• 一個問題的【不確定性越大】時,要搞清楚這個問題需要了解的
資訊就越多,就表示【資訊熵越大】。
分裂變數的基準
24
P(x) 表示事件 x 出現的機率
Claude Shannon (資訊理論之父)
https://case.ntu.edu.tw/blog/?p=36957
• 一個盒子分別有 5 個白球和 5 個紅球,隨機取出一個球,試問該
球的顏色? 這個問題的資訊量有多大呢?
• 白球、紅球出現的機率都為 1/2,帶入資訊熵公式為:
分裂變數的基準
25
分裂變數的基準
• 建立一顆決策樹時,如何優先選擇哪一個變數來分裂?
• 歷遍所有的變數,分別計算,使用這個特徵劃分【數據集前/後】資訊熵
的變化值,計算資訊增益後選擇【資訊增益最大】的組合,表示該變數
分裂後的效果越好,因此更傾向選用來作為決策樹的分裂節點
26
分裂變數的基準
顏色 紅球 白球 黑球 藍球
質量 1 1 1 2
體積 1 2 1 2
數量 2 2 4 8
機率 2/16 2/16 4/16 8/16
27
• 優先分裂的變數應該是「質量」還是「體積」?
分裂變數的基準
28
16顆球
體積
=1
白球*2
藍球*8
紅球*2
黑球*4
資訊熵 = 1.75
資訊熵 =0.721928
資訊熵 =0.918296
16顆球
質量
=1
藍球*8
紅球*2
黑球*4
白球*2
資訊熵 = 1.75
資訊熵 =0
資訊熵 =1.5
No
Yes
No
Yes
熵: 表示資訊混亂程度,該值越低,表示資訊越不混亂
Quiz: 選擇那一個變數進行分裂?
29
分裂變數的基準
• 利用資訊增益計算,會造成【類別最多】的變數【優先】進行分裂
• 例如: 身分證 ID 作為特徵用來進行分裂,計算結果資訊熵很低 (因
為一人一筆資料,資料不混亂),而每個葉子節點只有一個樣本,
請問這樣結果好嗎?
• 解決的方法:
• 透過業務經驗【合併】變數值欄位
30
常見的決策樹問題
• 何謂剪枝 (Pruning)?
• 訓練過程中不停地進行分裂變數,因此這會導致整棵樹的【分
支過多】,也就導致了【過擬合】
• 剪枝就是【限制決策樹的生長】,讓它不要為了訓練資料過度
分裂、記住太多雜訊,從而提升【泛化】能力
31
常見的決策樹問題
• 預剪枝 (Pre-Pruning),設定超參數 (Hyper-parameters)
• Minimum samples for a node split (資料數目不得小於多少? 才能再產
生新的節點)
• Minimum samples for a terminal node (leaf) (要成為葉節點,最少需
要多少的資料數目?)
• Maximum depth of tree (vertical depth) (限制樹的高度最多幾層?)
• Maximum number of terminal nodes (限制最終葉節點的數量?)
32
常見的決策樹問題
• 這麼多個超參數,優先考慮樹的【深度】
• max_depth
33
補充
• 後剪枝 (Post-Pruning)
• ccp_alpha (Cost Complexity Pruning Alpha)
• 該值越大表示剪枝越多,樹越簡單
• 【交叉驗證】選擇最佳的值
• K-fold cross-validation
34
偏差 (Bias) 與方差 (Variance)
• 軍訓課打靶為例
• 準: 命中紅心 (Low bias)
• 確: 子彈之間距離不會相差太遠
35
目標是求得最低的總誤差
36
當 Overfitting 時,有高的Variance
什麼叫 Overfitting ?
37
Overfitting 原因?
1. 數據集有【噪音】
2. 採用【複雜】的演算法
3. Early Stopping
4. 訓練【資料太少】
5. 【降低】變數維度
6. 使用【資料正規化】
7. 調整【超參數】
8. 換一個【簡單】一點的演
算法
什麼叫 Underfitting ?
• 模型太過簡單
• 【增加】資料數量
• 【增加】迭代次數
• 調整超參數(Hyper-parameters)
• 【更多】的變數來訓練模型
• 更換一個【更複雜】的模型
38
常見模型評估方式 (監督式學習)
• 混淆矩陣
39
混淆矩陣遇到分類大於二元分類時,會擴展成較大的矩陣表格 (nxn)
常見模型評估方式 (監督式學習)
40
Ture Positive Rate (TPR)
False Positive Rate (FPR)
ROC評估一般用於二元分類,如果超過二元分類就要額外處理,例如: One-vs-Rest 方式
實作
• DecisionTreeClassifier
• https://scikit-
learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html
41
tree.ipynb
42
1. 一共有 3 個 classes,分別是: Setosa、 Virginica、Versicolor (三個顏色)。
2. 節點由 node #0 開始至 node#8,生成方式以先深後廣 (DFS)。
3. 特徵重要性排序為 petal.length,接下來為 petal.width、sepal.width。
4. 請注意每一個node內容的 samples數量。
5. 某種程度來說,分裂到 node #5 即可。
產生 SQL 語法
共五個葉子節點,表示有五段 SQL Case When
Select case
when petal.length <=2.35 then 0
when petal.length >2.35 and petal.length <=5.05 and petal.width <=1.75 then 1
when petal.length >2.35 and petal.length <=5.05 and petal.width >1.75 and sepal.width <=3.1 then 2
when petal.length >2.35 and petal.length <=5.05 and petal.width >1.75 and sepal.width >3.1 then 1
when petal.length >2.35 and petal.length > 5.05 then 2
作業 (慢性腎臟病檔案,建立預測模型)
• 開啟作業: hw.ipynb
• 資料集: kidney_disease.csv
• 應變數欄位: Chronic Kidney Disease: yes
• 自變數欄位
• 有些欄位需要拿掉
• 處理遺缺值欄位
• 模型評估
• 提供模型 accuracy_score
• ROC 指標 (加分)
43
hw.ipynb

Supervised learning in decision tree algorithm