SlideShare una empresa de Scribd logo
1 de 75
人工智慧
教師:陳志華博士
報告大綱-決策樹
決策樹定義和說明
以資訊增益(Information Gain)為基礎之決策樹方法
◦ 疊代二元樹3代(Iterative Dichotomiser 3, ID3)
◦ C4.5/C5.0
◦ C5.0決策樹方法實作
以Gini係數為基礎之決策樹方法
◦ 分類和回歸樹(Classification And Regression Trees, CART)
◦ CART決策樹方法實作
以卡方統計量(Chi-Square Statistic)為基礎之決策樹方法
◦ 卡方自動交互檢視法(Chi-Square Automatic Interaction Detector, CHAID)
決策樹實例應用
2
決策樹定義和說明
決策樹(Decision Tree)具有監督式的特徵萃取與描述的功能,將輸入資料屬性根據目標設
定來選擇分支資料屬性和分支方式,並以樹枝狀的層級架構呈現,以萃取分類規則。經過
修整後的決策樹模型可以作為資料探索或預測。決策樹可以找出目標屬性和各個資料屬性
的層級關係。
3
顧客編號 婚姻 收入 購買不動產
C01 單身 低 無
C02 單身 高 無
C03 已婚 低 有
C04 已婚 高 有
顧客編號 婚姻 收入 購買不動產
C01 0 0 0
C02 0 1 0
C03 1 0 1
C04 1 1 1
單身:0
已婚:1
低:0
高:1
無:0
有:1
不會購買不動產 會購買不動產
決策樹定義和說明
4
顧客編號 婚姻 收入 購買不動產
C01 0 0 0
C02 0 1 0
C03 1 0 1
C04 1 1 1
不會購買不動產 會購買不動產
採用自頂端向下搜尋可能的決策樹空間
演算法概念
◦ 資料設定:將原始資料分成訓練資料和測試資料
◦ 決策樹生成:運用訓練資料來建立決策樹,過程中依據屬性選擇指標(如:資訊增益、Gini係數、
卡方統計量)來評估選擇哪個屬性做分支的依據
◦ 剪枝:參考測試資料,並進行決策樹修剪
◦ 將以上步驟不斷重複進行,直到所有的新產生節點都是樹葉節點為止
以資訊增益為基礎之決策樹方法:ID3、C4.5/C5.0
以Gini係數為基礎之決策樹方法:CART
以卡方統計量為基礎之決策樹方法:CHAID
以資訊增益為基礎之決策樹方法
運用資訊增益(Information Gain)作為分支準則
◦ ID3
運用資訊增益比(Information Gain Ratio)作為分支準則
◦ C4.5/C5.0
5
    

k
i
ii ppInfo
1
2log購買不動產
顧客編號 婚姻 收入 購買不動產
C01 0 0 0
C02 0 1 0
C03 1 0 1
C04 1 1 1
     購買不動產購買不動產婚姻 婚姻InfoInfoGain 
         已婚已婚單身單身購買不動產婚姻 InfoInfoInfo  PrPr
             已購買不動產已購買不動產未購買不動產未購買不動產購買不動產 PrlogPrPrlogPr 22 Info
   
 婚姻
婚姻
婚姻
SplitInfo
Gain
GR 
             已婚已婚單身單身婚姻 PrlogPrPrlogPr 22 SplitInfo
此資訊增益代表在取得「婚姻」資料屬性
的情況下,獲得的資訊量
ID3決策樹方法
Info函式稱為熵(Entropy),常用來衡量資料亂度
6
購買不動產
0
0
0
0
    

k
i
ii ppInfo
1
2log購買不動產
             已購買不動產已購買不動產未購買不動產未購買不動產購買不動產 PrlogPrPrlogPr 22 Info
 
     
000
0log01log1 22


購買不動產Info
購買不動產
1
0
0
0
 
  
  
.810.50.310
25.0log25.0
75.0log75.0
2
2



購買不動產Info
購買不動產
1
1
0
0
 
  
  
1.50.50
.50log.50
.50log.50
2
2



購買不動產Info
購買不動產
1
1
1
1
 
     
000
1log10log0 22


購買不動產Info
在此情境,資料亂度最高 在此情境,資料亂度最低在此情境,資料亂度最低
ID3決策樹方法
資訊增益(Information Gain)計算方式
7
顧客編號 婚姻 收入 購買不動產
C01 0 0 0
C02 0 1 0
C03 1 0 1
C04 1 1 1
             
      1.50.505.0log5.05.0log5.0
4
2
log
4
2
4
2
log
4
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info
             
      0000log01log1
2
0
log
2
0
2
2
log
2
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產單身Info
             
      0001log10log0
2
2
log
2
2
2
0
log
2
0
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產已婚Info
在得知「單身」的情況下,
可將資料亂度降到0
在得知「已婚」的情況下,
可將資料亂度降到0
案例1
ID3決策樹方法
資訊增益(Information Gain)計算方式
8
顧客編號 婚姻 收入 購買不動產
C01 0 0 0
C02 0 1 0
C03 1 0 1
C04 1 1 1
         
    005.005.0
4
2
4
2
PrPr


已婚單身
已婚已婚單身單身購買不動產婚姻
InfoInfo
InfoInfoInfo
     
101 
 購買不動產購買不動產婚姻 婚姻InfoInfoGain
由於在得知「單身」和「已婚」的情況下,
分別可以將資料亂度降到0
因此在得知「婚姻」屬性的情況下,可將
資料亂度降到0在得知「婚姻」的情況下,
可以得到許多資訊量
案例1
ID3決策樹方法
資訊增益(Information Gain)計算方式
9
顧客編號 婚姻 收入 購買不動產
C01 0 0 0
C02 0 1 0
C03 1 0 1
C04 1 1 1
             
      1.50.505.0log5.05.0log5.0
4
2
log
4
2
4
2
log
4
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info
             
      10.50.50.5log0.50.5log0.5
2
1
log
2
1
2
1
log
2
1
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產低收入Info
             
      10.50.50.5log0.50.5log0.5
2
1
log
2
1
2
1
log
2
1
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產高收入Info
在得知「低收入」的情況
下,資料亂度仍為1
在得知「高收入」的情況
下,資料亂度仍為1
案例1
ID3決策樹方法
資訊增益(Information Gain)計算方式
10
顧客編號 婚姻 收入 購買不動產
C01 0 0 0
C02 0 1 0
C03 1 0 1
C04 1 1 1
         
    115.015.0
4
2
4
2
PrPr


高收入低收入
高收入高收入低收入低收入購買不動產收入
InfoInfo
InfoInfoInfo
     
011 
 購買不動產購買不動產收入 收入InfoInfoGain
在得知「收入」的情況下,
並沒有得到任何資訊量
由於在得知「低收入」和「高收入」的情
況下,資料亂度仍分別為1
因此在得知「收入」屬性的情況下,資料
亂度仍為1
案例1
ID3決策樹方法
生成決策樹的方式
判斷資訊增益最高的資料屬性作為節點
決策樹
11
顧客編號 婚姻 收入 購買不動產
C01 0 0 0
C02 0 1 0
C03 1 0 1
C04 1 1 1
   收入婚姻 GainGain 
婚姻
不會
購買不動產
會
購買不動產
單身
婚姻=0
已婚
婚姻=1
「婚姻」比「收入」可以取得更多的資訊量,
故將「婚姻」設定為根節點
案例1
ID3決策樹方法-不適用情境
決策樹不適用情境:僅考慮資料屬性與目標屬性的關聯性,未考慮資料屬性間的關聯性,
當每個資料屬性皆與目標屬性互相獨立,將會不準確
12
顧客編號 婚姻 收入 購買不動產
C11 已婚 低 無
C12 單身 高 無
C13 已婚 低 有
C14 單身 高 有
顧客編號 婚姻 收入 購買不動產
C11 1 0 0
C12 0 1 0
C13 1 0 1
C14 0 1 1
單身:0
已婚:1
低:0
高:1
無:0
有:1
由於資料屬性皆無參考價值,
所以無法生成決策樹
案例2
ID3決策樹方法-不適用情境
資訊增益(Information Gain)計算方式
13
顧客編號 婚姻 收入 購買不動產
C11 1 0 0
C12 0 1 0
C13 1 0 1
C14 0 1 1
             
      1.50.505.0log5.05.0log5.0
4
2
log
4
2
4
2
log
4
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info
             
      15.05.05.0log5.05.0log5.0
2
1
log
2
1
2
1
log
2
1
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產單身Info
             
      15.05.05.0log5.05.0log5.0
2
1
log
2
1
2
1
log
2
1
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產已婚Info
在得知「單身」的情況下,
資料亂度仍為1
在得知「已婚」的情況下,
資料亂度仍為1
案例2
ID3決策樹方法-不適用情境
資訊增益(Information Gain)計算方式
14
         
    115.015.0
4
2
4
2
PrPr


已婚單身
已婚已婚單身單身購買不動產婚姻
InfoInfo
InfoInfoInfo
     
011 
 購買不動產購買不動產婚姻 婚姻InfoInfoGain
由於在得知「單身」和「已婚」的情況下,
資料亂度仍分別為1
因此在得知「婚姻」屬性的情況下,資料
亂度仍為1在得知「婚姻」的情況下,
並沒有得到任何資訊量
顧客編號 婚姻 收入 購買不動產
C11 1 0 0
C12 0 1 0
C13 1 0 1
C14 0 1 1
案例2
ID3決策樹方法-不適用情境
資訊增益(Information Gain)計算方式
15
             
      1.50.505.0log5.05.0log5.0
4
2
log
4
2
4
2
log
4
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info
             
      10.50.50.5log0.50.5log0.5
2
1
log
2
1
2
1
log
2
1
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產低收入Info
             
      10.50.50.5log0.50.5log0.5
2
1
log
2
1
2
1
log
2
1
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產高收入Info
在得知「低收入」的情況
下,資料亂度仍為1
在得知「高收入」的情況
下,資料亂度仍為1
顧客編號 婚姻 收入 購買不動產
C11 1 0 0
C12 0 1 0
C13 1 0 1
C14 0 1 1
案例2
ID3決策樹方法-不適用情境
資訊增益(Information Gain)計算方式
16
         
    115.015.0
4
2
4
2
PrPr


高收入低收入
高收入高收入低收入低收入購買不動產收入
InfoInfo
InfoInfoInfo
     
011 
 購買不動產購買不動產收入 收入InfoInfoGain
在得知「收入」的情況下,
並沒有得到任何資訊量
由於在得知「低收入」和「高收入」的情
況下,資料亂度仍分別為1
因此在得知「收入」屬性的情況下,資料
亂度仍為1
顧客編號 婚姻 收入 購買不動產
C11 1 0 0
C12 0 1 0
C13 1 0 1
C14 0 1 1
由於得知「婚姻」和「收入」的情況下,得到的資訊量皆為0
所有資料屬性皆無參考價值,所以無法生成決策樹
案例2
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
ID3決策樹方法-適用情境
決策樹適用情境:資料切割後,仍有資料屬性與目標屬性相依
17
單身:0
已婚:1
青年:0
中年:1
無:0
有:1
顧客編號 婚姻 年齡 收入 購買不動產
C21 已婚 青年 高 有
C22 已婚 中年 低 有
C23 已婚 青年 高 有
C24 已婚 中年 低 有
C25 單身 中年 高 有
C26 單身 中年 低 有
C27 單身 青年 高 無
C28 單身 青年 低 無
低:0
高:1
不會購買不動產 會購買不動產會購買不動產
案例3
ID3決策樹方法-適用情境
資訊增益(Information Gain)計算方式
18
             
      18.0.310.5075.0log75.025.0log25.0
8
6
log
8
6
8
2
log
8
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info
             
      15.05.05.0log5.05.0log5.0
4
2
log
4
2
4
2
log
4
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產單身Info
             
      0001log10log0
4
4
log
4
4
4
0
log
4
0
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產已婚Info
在得知「單身」的情況下,
資料亂度仍為1
在得知「已婚」的情況下,
可將資料亂度降到0
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
ID3決策樹方法-適用情境
資訊增益(Information Gain)計算方式
19
         
    5.005.015.0
8
4
8
4
PrPr


已婚單身
已婚已婚單身單身購買不動產婚姻
InfoInfo
InfoInfoInfo
     
31.05.081.0 
 購買不動產購買不動產婚姻 婚姻InfoInfoGain
得知「單身」的情況下,資料亂度為1;而
得知「已婚」的情況下,資料亂度為0,且
「單身」和「已婚」各佔一半的資料
因此在得知「婚姻」屬性的情況下,可將
資料亂度降到0.5在得知「婚姻」的情況下,
可以得到資訊量0.31
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
             
      0001log10log0
4
4
log
4
4
4
0
log
4
0
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產中年Info
ID3決策樹方法-適用情境
資訊增益(Information Gain)計算方式
20
             
      18.0.310.5075.0log75.025.0log25.0
8
6
log
8
6
8
2
log
8
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info
             
      15.05.05.0log5.05.0log5.0
4
2
log
4
2
4
2
log
4
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產青年Info
在得知「青年」的情況下,
資料亂度仍為1
在得知「中年」的情況下,
可將資料亂度降到0
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
ID3決策樹方法-適用情境
資訊增益(Information Gain)計算方式
21
         
    5.005.015.0
8
4
8
4
PrPr


中年青年
中年中年青年青年購買不動產年齡
InfoInfo
InfoInfoInfo
     
31.05.081.0 
 購買不動產購買不動產年齡 年齡InfoInfoGain
得知「青年」的情況下,資料亂度為1;而
得知「中年」的情況下,資料亂度為0,且
「青年」和「中年」各佔一半的資料
因此在得知「年齡」屬性的情況下,可將
資料亂度降到0.5
在得知「年齡」的情況下,
可以得到資訊量0.31
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
ID3決策樹方法-適用情境
資訊增益(Information Gain)計算方式
22
             
      18.0.310.5075.0log75.025.0log25.0
8
6
log
8
6
8
2
log
8
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info
             
      18.031.05.075.0log75.025.0log25.0
4
3
log
4
3
4
1
log
4
1
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產低收入Info
在得知「低收入」的情況
下,資料亂度仍為0.81
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
             
      18.031.05.075.0log75.025.0log25.0
4
3
log
4
3
4
1
log
4
1
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產高收入Info
在得知「高收入」的情況
下,資料亂度仍為0.81
ID3決策樹方法-適用情境
資訊增益(Information Gain)計算方式
23
         
    81.081.05.081.05.0
8
4
8
4
PrPr


高收入低收入
高收入高收入低收入低收入購買不動產收入
InfoInfo
InfoInfoInfo
     
081.081.0 
 購買不動產購買不動產收入 收入InfoInfoGain
得知「低收入」的情況下,資料亂度為0.81;
而得知「高收入」的情況下,資料亂度為0.81,
且「低收入」和「高收入」各佔一半的資料
因此在得知「婚姻」屬性的情況下,可將資料
亂度仍為0.81在得知「收入」的情況下,
並沒有得到任何資訊量
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
ID3決策樹方法-適用情境
生成決策樹的方式
判斷資訊增益最高的資料屬性作為節點
決策樹
24
     收入年齡婚姻 GainGainGain 
婚姻
?
會
購買不動產
單身
婚姻=0
已婚
婚姻=1
「婚姻」比「收入」可以取得更多的資訊量,
故將「婚姻」設定為根節點
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
             
      0001log10log0
2
2
log
2
2
2
0
log
2
0
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產中年Info
ID3決策樹方法-適用情境
資訊增益(Information Gain)計算方式
25
             
      1.50.505.0log5.05.0log5.0
4
2
log
4
2
4
2
log
4
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info
             
      0000log01log1
2
0
log
2
0
2
2
log
2
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產青年Info
在得知「中年」的情況下,
可將資料亂度降到0
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
在得知「青年」的情況下,
可將資料亂度降到0
ID3決策樹方法-適用情境
資訊增益(Information Gain)計算方式
26
         
    005.005.0
4
2
4
2
PrPr


中年青年
中年中年青年青年購買不動產年齡
InfoInfo
InfoInfoInfo
     
101 
 購買不動產購買不動產年齡 年齡InfoInfoGain
得知「青年」的情況下,資料亂度為0;而
得知「中年」的情況下,資料亂度為0,且
「青年」和「中年」各佔一半的資料
因此在得知「年齡」屬性的情況下,可將
資料亂度降到0
在得知「年齡」的情況下,
可以得到資訊量1
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
ID3決策樹方法-適用情境
資訊增益(Information Gain)計算方式
27
             
      15.05.05.0log5.05.0log5.0
2
1
log
2
1
2
1
log
2
1
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產低收入Info
在得知「低收入」的情況
下,資料亂度仍為1
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
             
      15.05.05.0log5.05.0log5.0
2
1
log
2
1
2
1
log
2
1
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產高收入Info
在得知「高收入」的情況
下,資料亂度仍為1
             
      1.50.505.0log5.05.0log5.0
4
2
log
4
2
4
2
log
4
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info
ID3決策樹方法-適用情境
資訊增益(Information Gain)計算方式
28
         
    115.015.0
4
2
4
2
PrPr


高收入低收入
高收入高收入低收入低收入購買不動產收入
InfoInfo
InfoInfoInfo
     
011 
 購買不動產購買不動產收入 收入InfoInfoGain
得知「低收入」的情況下,資料亂度為1;
而得知「高收入」的情況下,資料亂度為1,
且「低收入」和「高收入」各佔一半的資料
因此在得知「收入」屬性的情況下,可將資
料亂度仍為1
在得知「收入」的情況下,
並沒有得到任何資訊量
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
ID3決策樹方法-適用情境
生成決策樹的方式
判斷資訊增益最高的資料屬性作為節點
決策樹
29
   收入年齡 GainGain 
婚姻
年齡
會
購買不動產
單身
婚姻=0
已婚
婚姻=1
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
青年
年齡=0
中年
年齡=1
會
購買不動產
不會
購買不動產
不會購買不動產 會購買不動產會購買不動產
「年齡」比「收入」可以取得更多的資訊量,
故將「年齡」設定為節點
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
C4.5/C5.0決策樹方法
C4.5/C5.0與ID3不同的地方在於運用「資訊增益比(Information Gain Ratio)」作為分支準則
30
單身:0
已婚:1
青年:0
中年:1
無:0
有:1
顧客編號 婚姻 年齡 收入 購買不動產
C21 已婚 青年 高 有
C22 已婚 中年 低 有
C23 已婚 青年 高 有
C24 已婚 中年 低 有
C25 單身 中年 高 有
C26 單身 中年 低 有
C27 單身 青年 高 無
C28 單身 青年 低 無
低:0
高:1
不會購買不動產 會購買不動產會購買不動產
案例3
C4.5/C5.0決策樹方法
資訊增益(Information Gain)計算方式
31
             
      18.0.310.5075.0log75.025.0log25.0
8
6
log
8
6
8
2
log
8
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info
             
      15.05.05.0log5.05.0log5.0
4
2
log
4
2
4
2
log
4
2
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產單身Info
             
      0001log10log0
4
4
log
4
4
4
0
log
4
0
PrlogPrPrlogPr
2222
22

























 已購買不動產已購買不動產未購買不動產未購買不動產已婚Info
在得知「單身」的情況下,
資料亂度仍為1
在得知「已婚」的情況下,
可將資料亂度降到0
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
C4.5/C5.0決策樹方法
資訊增益(Information Gain)計算方式
32
         
    5.005.015.0
8
4
8
4
PrPr


已婚單身
已婚已婚單身單身購買不動產婚姻
InfoInfo
InfoInfoInfo
     
31.05.081.0 
 購買不動產購買不動產婚姻 婚姻InfoInfoGain 得知「單身」的情況下,資料亂度為1;而
得知「已婚」的情況下,資料亂度為0,且
「單身」和「已婚」各佔一半的資料
因此在得知「婚姻」屬性的情況下,可將
資料亂度降到0.5
在得知「婚姻」的情況下,
可以得到資訊量0.31
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
C4.5/C5.0決策樹方法
資訊增益比(Information Gain Ratio)計算方式
33
「婚姻」屬性本身的資料亂度為1
在得知「婚姻」的情況下,
可以得到資訊增益比0.31
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
   
 
31.0
1
31.0


婚姻
婚姻
婚姻
SplitInfo
Gain
GR
             
      15.05.05.0log5.05.0log5.0
8
4
log
8
4
8
4
log
8
4
PrlogPrPrlogPr
2222
22

























 已婚已婚單身單身婚姻SplitInfo
C4.5/C5.0決策樹方法
資訊增益比(Information Gain Ratio)計算方式
34
「年齡」屬性本身的資料亂度為1
在得知「年齡」的情況下,
可以得到資訊增益比0.31
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
   
 
31.0
1
31.0


年齡
年齡
年齡
SplitInfo
Gain
GR
             
      15.05.05.0log5.05.0log5.0
8
4
log
8
4
8
4
log
8
4
PrlogPrPrlogPr
2222
22

























 中年中年青年青年年齡SplitInfo
C4.5/C5.0決策樹方法
資訊增益比(Information Gain Ratio)計算方式
35
「收入」屬性本身的資料亂度為1
在得知「收入」的情況下,
得到資訊增益比0
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
   
 
0
1
0


收入
收入
收入
SplitInfo
Gain
GR
             
      15.05.05.0log5.05.0log5.0
8
4
log
8
4
8
4
log
8
4
PrlogPrPrlogPr
2222
22

























 高收入高收入低收入低收入收入SplitInfo
C4.5/C5.0決策樹方法
生成決策樹的方式
判斷資訊增益比最高的資料屬性作為節點
決策樹
36
     收入年齡婚姻 GRGRGR 
婚姻
?
會
購買不動產
單身
婚姻=0
已婚
婚姻=1
「婚姻」比「收入」可以取得更高的資訊增益比,
故將「婚姻」設定為根節點
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
C4.5/C5.0決策樹方法
37
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
資訊增益比(Information Gain Ratio)計算方式
「年齡」屬性本身的資料亂度為1
在得知「年齡」的情況下,
可以得到資訊增益比1
   
 
1
1
1


年齡
年齡
年齡
SplitInfo
Gain
GR
             
      15.05.05.0log5.05.0log5.0
4
2
log
4
2
4
2
log
4
2
PrlogPrPrlogPr
2222
22

























 中年中年青年青年年齡SplitInfo
C4.5/C5.0決策樹方法
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
資訊增益比(Information Gain Ratio)計算方式
「收入」屬性本身的資料亂度為1
在得知「收入」的情況下,
得到資訊增益比0
   
 
0
1
0


收入
收入
收入
SplitInfo
Gain
GR
             
      15.05.05.0log5.05.0log5.0
4
2
log
4
2
4
2
log
4
2
PrlogPrPrlogPr
2222
22

























 高收入高收入低收入低收入收入SplitInfo
C4.5/C5.0決策樹方法
生成決策樹的方式
判斷資訊增益比最高的資料屬性作為節點
決策樹
39
   收入年齡 GRGR 
婚姻
年齡
會
購買不動產
單身
婚姻=0
已婚
婚姻=1
「年齡」比「收入」可以取得更高的資訊增益比,
故將「年齡」設定為節點
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
青年
年齡=0
中年
年齡=1
會
購買不動產
不會
購買不動產
不會購買不動產 會購買不動產會購買不動產
C4.5/C5.0決策樹方法
為什麼需要資訊增益比?當同一個資料屬性有多個不同資料項目時,可以正規化
40
年齡
單身
單身
單身
已婚
已婚
已婚
 
  
  
1.50.50
.50log.50
.50log.50
2
2



婚姻SplitInfo
年齡
青年
青年
中年
中年
老年
老年
 
  
  
  
1.590.53.530.530
.330log.330
.330log.330
.330log.330
2
2
2




年齡SplitInfo
年齡 購買不動產
單身 有
單身 無
單身 有
已婚 有
已婚 有
已婚 有
 
 
 
46.00.46.920 

購買不動產
購買不動產
婚姻
年齡Info
Info
Gain  
 
 
59.00.33.920 

購買不動產
購買不動產
年齡
年齡Info
Info
Gain
年齡 購買不動產
青年 有
青年 無
中年 有
中年 有
老年 有
老年 有
   
 
46.0
1
46.0


婚姻
婚姻
婚姻
SplitInfo
Gain
GR    
 
37.0
59.1
59.0


年齡
年齡
年齡
SplitInfo
Gain
GR
2個不同項目時,資
料亂度最大值為1
3個不同項目時,資
料亂度最大值為1.59
只考慮資訊增益,將
由婚姻資料屬性勝出
考慮資訊增益比,將
由年齡資料屬性勝出
C5.0決策樹方法實作
建立訓練資料,並儲存為csv檔
請參考「案例3_購買不動產(訓練資料).csv」
41
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
單身:0
已婚:1
青年:0
中年:1
無:0
有:1
顧客編號 婚姻 年齡 收入 購買不動產
C21 已婚 青年 高 有
C22 已婚 中年 低 有
C23 已婚 青年 高 有
C24 已婚 中年 低 有
C25 單身 中年 高 有
C26 單身 中年 低 有
C27 單身 青年 高 無
C28 單身 青年 低 無
低:0
高:1
C5.0決策樹方法實作
新增RScript檔案,並編輯程式碼
#安裝C50和MASS函式庫
install.packages('C50')
install.packages('MASS')
#引用C50和MASS函式庫
library(C50)
library(MASS)
42
C5.0決策樹方法實作
#讀取訓練資料
training_data <- read.csv(file.choose(),
header = TRUE)
#轉換為因子矩陣
training_data <-
data.frame(lapply(training_data, as.factor))
43
C5.0決策樹方法實作
#訓練C5.0決策樹
model <- C5.0(Class ~ ., data =
training_data)
#繪製決策樹
plot(model)
44
設定目標欄位為「Class」,
其他欄位為訓練資料
C5.0決策樹方法實作
#讀取測試資料
testing_data <- read.csv(file.choose(),
header = TRUE)
#轉換為因子矩陣
testing_data <-
data.frame(lapply(testing_data, as.factor))
45
C5.0決策樹方法實作
#將測試資料代入模型進行預測,並取得
預測結果
pred <- predict(model, testing_data)
#運用表格呈現和比對預測結果
table(pred, testing_data$Class)
46
C5.0決策樹方法實作
可經由table瀏覽分類結果
47
正確答案為
「目標類別」
正確答案為
「非目標類別」
機器答案為
「目標類別」
True Positive (TP)
False Positive (FP)
(型一(Type I)誤差)
機器答案為
「非目標類別」
False Negative (FN)
(型二(Type II)誤差)
True Negative (TN)
不購買不動產 購買不動產
不購買不動產 2 0
購買不動產 0 6
假設測試資料同訓練資料
%100
2
2
Precision 


FPTP
TP
%100
2
2
Recall 


FNTP
TP
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
以Gini係數為基礎之決策樹方法
分類和回歸樹(Classification And Regression Trees, CART)為以Gini係數為基礎之決策樹方法
48
單身:0
已婚:1
青年:0
中年:1
無:0
有:1
顧客編號 婚姻 年齡 收入 購買不動產
C21 已婚 青年 高 有
C22 已婚 中年 低 有
C23 已婚 青年 高 有
C24 已婚 中年 低 有
C25 單身 中年 高 有
C26 單身 中年 低 有
C27 單身 青年 高 無
C28 單身 青年 低 無
低:0
高:1
不會購買不動產 會購買不動產會購買不動產
案例3
Gini係數為不純度(Impurity)
CART決策樹方法
Gini係數計算方式
49
        
  5.0.5015.05.01
PrPr1
22
22

 已購買不動產未購買不動產購買不動產Gini
在得知「婚姻」的情況下,
Gini係數值下降0.25
原始的Gini係數值為0.5
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
         
         
         
25.005.05.05.0
4
4
4
0
1
8
4
4
2
4
2
1
8
4
|Pr|Pr1Pr
|Pr|Pr1Pr
PrPr
2222
22
22






























































已婚已購買不動產已婚未購買不動產已婚
單身已購買不動產單身未購買不動產單身
已婚已婚單身單身購買不動產婚姻 GiniGiniGini
      25.025.05.0  購買不動產購買不動產婚姻 婚姻GiniGiniGini
CART決策樹方法
Gini係數計算方式
50
        
  5.0.5015.05.01
PrPr1
22
22

 已購買不動產未購買不動產購買不動產Gini
在得知「年齡」的情況下,
Gini係數值下降0.25
原始的Gini係數值為0.5
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
         
         
         
25.005.05.05.0
4
4
4
0
1
8
4
4
2
4
2
1
8
4
|Pr|Pr1Pr
|Pr|Pr1Pr
PrPr
2222
22
22






























































中年已購買不動產中年未購買不動產中年
青年已購買不動產青年未購買不動產青年
中年中年青年青年購買不動產年齡 GiniGiniGini
      25.025.05.0  購買不動產購買不動產年齡 年齡GiniGiniGini
CART決策樹方法
Gini係數計算方式
51
        
  5.0.5015.05.01
PrPr1
22
22

 已購買不動產未購買不動產購買不動產Gini
在得知「收入」的情況下,
Gini係數值下降0.125
原始的Gini係數值為0.5
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
         
         
         
375.0375.05.0375.05.0
4
3
4
1
1
8
4
4
3
4
1
1
8
4
|Pr|Pr1Pr
|Pr|Pr1Pr
PrPr
2222
22
22






























































高收入已購買不動產高收入未購買不動產高收入
低收入已購買不動產低收入未購買不動產低收入
高收入高收入低收入低收入購買不動產收入 GiniGiniGini
      125.0375.05.0  購買不動產購買不動產收入 收入GiniGiniGini
CART決策樹方法
生成決策樹的方式
判斷Gini值減少最多的資料屬性作為節點
決策樹
52
     收入年齡婚姻 GiniGiniGini 
婚姻
?
會
購買不動產
單身
婚姻=0
已婚
婚姻=1
「婚姻」比「收入」減少更多的不純度,故
將「婚姻」設定為根節點
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
CART決策樹方法
Gini係數計算方式
53
        
  5.0.5015.05.01
PrPr1
22
22

 已購買不動產未購買不動產購買不動產Gini
在得知「年齡」的情況下,
Gini係數值下降0.5
原始的Gini係數值為0.5
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
         
         
         
005.005.0
2
2
2
0
1
4
2
2
0
2
2
1
4
2
|Pr|Pr1Pr
|Pr|Pr1Pr
PrPr
2222
22
22






























































中年已購買不動產中年未購買不動產中年
青年已購買不動產青年未購買不動產青年
中年中年青年青年購買不動產年齡 GiniGiniGini
      5.005.0  購買不動產購買不動產年齡 年齡GiniGiniGini
CART決策樹方法
Gini係數計算方式
54
        
  5.0.5015.05.01
PrPr1
22
22

 已購買不動產未購買不動產購買不動產Gini
在得知「收入」的情況下,
Gini係數值下降0
原始的Gini係數值為0.5
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
         
         
         
5.05.05.05.05.0
2
1
2
1
1
4
2
2
1
2
1
1
4
2
|Pr|Pr1Pr
|Pr|Pr1Pr
PrPr
2222
22
22






























































高收入已購買不動產高收入未購買不動產高收入
低收入已購買不動產低收入未購買不動產低收入
高收入高收入低收入低收入購買不動產收入 GiniGiniGini
      05.05.0  購買不動產購買不動產收入 收入GiniGiniGini
   收入年齡 GiniGini 
CART決策樹方法
生成決策樹的方式
判斷Gini值減少最多的資料屬性作為節點
決策樹
55
婚姻
年齡
會
購買不動產
單身
婚姻=0
已婚
婚姻=1
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
青年
年齡=0
中年
年齡=1
會
購買不動產
不會
購買不動產
「年齡」比「收入」減少更多的不純度,故
將「年齡」設定為節點
不會購買不動產 會購買不動產會購買不動產
CART決策樹方法實作
新增RScript檔案,並編輯程式碼
#安裝rpart和MASS函式庫
install.packages('rpart')
install.packages('MASS')
#引用rpart和MASS函式庫
library(rpart)
library(MASS)
56
CART決策樹方法實作
#讀取訓練資料
training_data <- read.csv(file.choose(),
header = TRUE)
#轉換為因子矩陣
training_data <-
data.frame(lapply(training_data, as.factor))
57
CART決策樹方法實作
#訓練CART決策樹
model <- rpart(Class ~ ., data =
training_data, method="class",
control=rpart.control(minsplit=1))
#繪製決策樹
library(partykit)
plot(as.party(model))
58
設定目標欄位為「Class」,
其他欄位為訓練資料
CART決策樹方法實作
#讀取測試資料
testing_data <- read.csv(file.choose(),
header = TRUE)
#轉換為因子矩陣
testing_data <-
data.frame(lapply(testing_data, as.factor))
59
CART決策樹方法實作
#將測試資料代入模型進行預測,並取得
預測結果
pred <- predict(model, testing_data)
#運用表格呈現和比對預測結果
table(pred, testing_data$Class)
60
CART決策樹方法實作
可經由table瀏覽分類結果
61
正確答案為
「目標類別」
正確答案為
「非目標類別」
機器答案為
「目標類別」
True Positive (TP)
False Positive (FP)
(型一(Type I)誤差)
機器答案為
「非目標類別」
False Negative (FN)
(型二(Type II)誤差)
True Negative (TN)
不購買不動產 購買不動產
不購買不動產 2 0
購買不動產 0 6
假設測試資料同訓練資料
%100
2
2
Precision 


FPTP
TP
%100
2
2
Recall 


FNTP
TP
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
以卡方統計為基礎之決策樹方法
卡方自動交互檢視法(Chi-Square Automatic Interaction Detector, CHAID)為以卡方統計量為
基礎之決策樹方法
計算每個資料屬性與目標屬性的完全獨立值,再計算真值與完全獨立值的卡方統計量
若真值與完全獨立值相似,則代表該資料屬性與目標屬性獨立,反之,則是具有相依性
取出相依性最高的資料屬性作為節點
62
單身:0
已婚:1
青年:0
中年:1
無:0
有:1
顧客編號 婚姻 年齡 收入 購買不動產
C21 已婚 青年 高 有
C22 已婚 中年 低 有
C23 已婚 青年 高 有
C24 已婚 中年 低 有
C25 單身 中年 高 有
C26 單身 中年 低 有
C27 單身 青年 高 無
C28 單身 青年 低 無
低:0
高:1
案例3
CHAID決策樹方法
婚姻與購買不動產的卡方統計量計算方式
卡方統計量
63
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
          67.2
3
34
3
32
1
10
1
12
2222
2








婚姻
未購買不動產 已購買不動產 總和
單身 2 (1) 2 (3) 4
已婚 0 (1) 4 (3) 4
總和 2 6 8
完全獨立值算法:
欄總和 * 列總和 / 總數
6 * 4 / 8 = 3
CHAID決策樹方法
64
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
年齡與購買不動產的卡方統計量計算方式
卡方統計量
完全獨立值算法:
欄總和 * 列總和 / 總數
6 * 4 / 8 = 3
          67.2
3
34
3
32
1
10
1
12
2222
2








年齡
未購買不動產 已購買不動產 總和
青年 2 (1) 2 (3) 4
中年 0 (1) 4 (3) 4
總和 2 6 8
CHAID決策樹方法
65
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
收入與購買不動產的卡方統計量計算方式
卡方統計量
完全獨立值算法:
欄總和 * 列總和 / 總數
6 * 4 / 8 = 3
          0
3
33
3
33
1
11
1
11
2222
2








收入
未購買不動產 已購買不動產 總和
低收入 1 (1) 3 (3) 4
高收入 1 (1) 3 (3) 4
總和 2 6 8
CHAID決策樹方法
生成決策樹的方式
判斷卡方統計量最多的資料屬性作為節點
決策樹
66
     收入年齡婚姻 222
 
婚姻
?
會
購買不動產
單身
婚姻=0
已婚
婚姻=1
「婚姻」比「收入」更為偏離完全獨立值,
故將「婚姻」設定為根節點
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
CHAID決策樹方法
67
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
年齡與購買不動產的卡方統計量計算方式
卡方統計量
完全獨立值算法:
欄總和 * 列總和 / 總數
2 * 2 / 4 = 1
未購買不動產 已購買不動產 總和
青年 2 (1) 0 (1) 2
中年 0 (1) 2 (1) 2
總和 2 2 4
          4
1
12
1
10
1
10
1
12
2222
2








年齡
CHAID決策樹方法
68
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
收入與購買不動產的卡方統計量計算方式
卡方統計量
完全獨立值算法:
欄總和 * 列總和 / 總數
2 * 2 / 4 = 1
          0
3
33
3
33
1
11
1
11
2222
2








收入
未購買不動產 已購買不動產 總和
低收入 1 (1) 1 (1) 2
高收入 1 (1) 1 (1) 2
總和 2 2 4
生成決策樹的方式
判斷Gini值減少最多的資料屬性作為節點
決策樹
   收入年齡 22
 
CHAID決策樹方法
69
婚姻
年齡
會
購買不動產
單身
婚姻=0
已婚
婚姻=1
顧客編號 婚姻 年齡 收入 購買不動產
C21 1 0 1 1
C22 1 1 0 1
C23 1 0 1 1
C24 1 1 0 1
C25 0 1 1 1
C26 0 1 0 1
C27 0 0 1 0
C28 0 0 0 0
案例3
青年
年齡=0
中年
年齡=1
會
購買不動產
不會
購買不動產
「年齡」比「收入」更為偏離完全獨立值,
故將「年齡」設定為節點
決策樹實例應用
開放資料-臺灣證券交易所
◦ 網址:
http://www.twse.com.tw/zh/page/trading/ex
change/FMTQIK.html
資料集服務分類
◦ 盤後資訊
◦ 臺灣跨市場指數
◦ TWSE自行編製指數
◦ 與FTSE合作編製指數
◦ 與銳聯合作編製指數
◦ 與S&PDJI合作編製指數
◦ 升降幅度/首五日無漲跌幅
◦ 當日沖銷交易標的及統計
◦ 融資融券與可借券賣出額度
70
決策樹實例應用
選擇資料日期和股票代碼
本例資料日期以2017年為例
挑選電信業者股票代碼
◦ 2412中華電
◦ 3045台灣大
◦ 3682亞太電
◦ 4904遠傳
71
決策樹實例應用
將目標個股每個月的加權平均價存到Excel
依漲跌情況,漲以1表示,跌以0表示,編碼為0、1二元表,
72
個股每個月加權平均價 個股漲跌二元表
漲以1表示,跌以0表示
決策樹實例應用
將個股漲跌二元表存成CSV檔
作為關聯規則學習的訓練資料
73
中華電欄位更名為Class
決策樹實例應用
C5.0決策樹實驗結果
74
正確答案為
「目標類別」
正確答案為
「非目標類別」
機器答案為
「目標類別」
True Positive (TP)
False Positive (FP)
(型一(Type I)誤差)
機器答案為
「非目標類別」
False Negative (FN)
(型二(Type II)誤差)
True Negative (TN)
中華電_跌 中華電_漲
中華電_跌 5 1
中華電_漲 1 4
%83
6
5
Precision 


FPTP
TP
%83
6
5
Recall 


FNTP
TP
決策樹實例應用
CART決策樹實驗結果
75
正確答案為
「目標類別」
正確答案為
「非目標類別」
機器答案為
「目標類別」
True Positive (TP)
False Positive (FP)
(型一(Type I)誤差)
機器答案為
「非目標類別」
False Negative (FN)
(型二(Type II)誤差)
True Negative (TN)
中華電_跌 中華電_漲
中華電_跌 5 1
中華電_漲 1 4
%83
6
5
Precision 


FPTP
TP
%83
6
5
Recall 


FNTP
TP

Más contenido relacionado

La actualidad más candente

An Introduction to Causal Discovery, a Bayesian Network Approach
An Introduction to Causal Discovery, a Bayesian Network ApproachAn Introduction to Causal Discovery, a Bayesian Network Approach
An Introduction to Causal Discovery, a Bayesian Network Approach
COST action BM1006
 
Multi-Layer Perceptrons
Multi-Layer PerceptronsMulti-Layer Perceptrons
Multi-Layer Perceptrons
ESCOM
 

La actualidad más candente (20)

表形式データで高性能な予測モデルを構築する「DNNとXGBoostのアンサンブル学習」
表形式データで高性能な予測モデルを構築する「DNNとXGBoostのアンサンブル学習」表形式データで高性能な予測モデルを構築する「DNNとXGBoostのアンサンブル学習」
表形式データで高性能な予測モデルを構築する「DNNとXGBoostのアンサンブル学習」
 
単語の分散表現と構成性の計算モデルの発展
単語の分散表現と構成性の計算モデルの発展単語の分散表現と構成性の計算モデルの発展
単語の分散表現と構成性の計算モデルの発展
 
ZeroCap: Zero-Shot Image-to-Text Generation for Visual-Semantic Arithmetic
ZeroCap: Zero-Shot Image-to-Text Generation for Visual-Semantic ArithmeticZeroCap: Zero-Shot Image-to-Text Generation for Visual-Semantic Arithmetic
ZeroCap: Zero-Shot Image-to-Text Generation for Visual-Semantic Arithmetic
 
KDD2021 論文読み会: Markdowns in e commerce fresh retail a counterfactual predict...
KDD2021 論文読み会: Markdowns in e commerce fresh retail  a counterfactual predict...KDD2021 論文読み会: Markdowns in e commerce fresh retail  a counterfactual predict...
KDD2021 論文読み会: Markdowns in e commerce fresh retail a counterfactual predict...
 
[DL輪読会]DisCo RL: Distribution-Conditioned Reinforcement Learning for General...
[DL輪読会]DisCo RL:  Distribution-Conditioned Reinforcement Learning for General...[DL輪読会]DisCo RL:  Distribution-Conditioned Reinforcement Learning for General...
[DL輪読会]DisCo RL: Distribution-Conditioned Reinforcement Learning for General...
 
Data Restart 2022: David Janoušek - Jak na výkonnostní kampaně v období cooki...
Data Restart 2022: David Janoušek - Jak na výkonnostní kampaně v období cooki...Data Restart 2022: David Janoušek - Jak na výkonnostní kampaně v období cooki...
Data Restart 2022: David Janoušek - Jak na výkonnostní kampaně v období cooki...
 
Poincare embeddings for Learning Hierarchical Representations
Poincare embeddings for Learning Hierarchical RepresentationsPoincare embeddings for Learning Hierarchical Representations
Poincare embeddings for Learning Hierarchical Representations
 
An Introduction to Causal Discovery, a Bayesian Network Approach
An Introduction to Causal Discovery, a Bayesian Network ApproachAn Introduction to Causal Discovery, a Bayesian Network Approach
An Introduction to Causal Discovery, a Bayesian Network Approach
 
Decision Transformer: Reinforcement Learning via Sequence Modeling
Decision Transformer: Reinforcement Learning via Sequence ModelingDecision Transformer: Reinforcement Learning via Sequence Modeling
Decision Transformer: Reinforcement Learning via Sequence Modeling
 
CycleGANについて
CycleGANについてCycleGANについて
CycleGANについて
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
 
Uncertainty in Deep Learning
Uncertainty in Deep LearningUncertainty in Deep Learning
Uncertainty in Deep Learning
 
Explainable AI is not yet Understandable AI
Explainable AI is not yet Understandable AIExplainable AI is not yet Understandable AI
Explainable AI is not yet Understandable AI
 
Multi-Layer Perceptrons
Multi-Layer PerceptronsMulti-Layer Perceptrons
Multi-Layer Perceptrons
 
Feature Engineering
Feature EngineeringFeature Engineering
Feature Engineering
 
How to use in R model-agnostic data explanation with DALEX & iml
How to use in R model-agnostic data explanation with DALEX & imlHow to use in R model-agnostic data explanation with DALEX & iml
How to use in R model-agnostic data explanation with DALEX & iml
 
【輪読】Bayesian Optimization of Combinatorial Structures
【輪読】Bayesian Optimization of Combinatorial Structures【輪読】Bayesian Optimization of Combinatorial Structures
【輪読】Bayesian Optimization of Combinatorial Structures
 
Diffusion models beat gans on image synthesis
Diffusion models beat gans on image synthesisDiffusion models beat gans on image synthesis
Diffusion models beat gans on image synthesis
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
Supervised and Unsupervised Machine Learning
Supervised and Unsupervised Machine LearningSupervised and Unsupervised Machine Learning
Supervised and Unsupervised Machine Learning
 

Más de Fuzhou University

Más de Fuzhou University (20)

遞歸神經網路(Python+TensorFlow+Keras)
遞歸神經網路(Python+TensorFlow+Keras)遞歸神經網路(Python+TensorFlow+Keras)
遞歸神經網路(Python+TensorFlow+Keras)
 
卷積神經網路(Python+TensorFlow+Keras)
卷積神經網路(Python+TensorFlow+Keras)卷積神經網路(Python+TensorFlow+Keras)
卷積神經網路(Python+TensorFlow+Keras)
 
神經網路(Python+TensorFlow+Keras)
神經網路(Python+TensorFlow+Keras)神經網路(Python+TensorFlow+Keras)
神經網路(Python+TensorFlow+Keras)
 
人工智慧11_遞歸神經網路
人工智慧11_遞歸神經網路人工智慧11_遞歸神經網路
人工智慧11_遞歸神經網路
 
多媒體系統10_3D繪圖軟體Blender
多媒體系統10_3D繪圖軟體Blender多媒體系統10_3D繪圖軟體Blender
多媒體系統10_3D繪圖軟體Blender
 
多媒體系統09_3D互動擴增實境
多媒體系統09_3D互動擴增實境多媒體系統09_3D互動擴增實境
多媒體系統09_3D互動擴增實境
 
人工智慧10_卷積神經網路
人工智慧10_卷積神經網路人工智慧10_卷積神經網路
人工智慧10_卷積神經網路
 
人工智慧09_神經網路(TensorFlow+Keras)
人工智慧09_神經網路(TensorFlow+Keras)人工智慧09_神經網路(TensorFlow+Keras)
人工智慧09_神經網路(TensorFlow+Keras)
 
多媒體系統08_Inkscape繪製圖形與漸層
多媒體系統08_Inkscape繪製圖形與漸層多媒體系統08_Inkscape繪製圖形與漸層
多媒體系統08_Inkscape繪製圖形與漸層
 
機器學習工具_微軟Azure Machine Learning Studio
機器學習工具_微軟Azure Machine Learning Studio機器學習工具_微軟Azure Machine Learning Studio
機器學習工具_微軟Azure Machine Learning Studio
 
論文導讀03_集成神經網路(智慧交通)
論文導讀03_集成神經網路(智慧交通)論文導讀03_集成神經網路(智慧交通)
論文導讀03_集成神經網路(智慧交通)
 
論文導讀02_神經網路(智慧交通)
論文導讀02_神經網路(智慧交通)論文導讀02_神經網路(智慧交通)
論文導讀02_神經網路(智慧交通)
 
論文導讀01_k個最近鄰居(行動定位)
論文導讀01_k個最近鄰居(行動定位)論文導讀01_k個最近鄰居(行動定位)
論文導讀01_k個最近鄰居(行動定位)
 
人工智慧08_神經網路
人工智慧08_神經網路人工智慧08_神經網路
人工智慧08_神經網路
 
多媒體系統02_影像處理原理與技術
多媒體系統02_影像處理原理與技術多媒體系統02_影像處理原理與技術
多媒體系統02_影像處理原理與技術
 
多媒體系統07_Android App影音互動擴增實境
多媒體系統07_Android App影音互動擴增實境多媒體系統07_Android App影音互動擴增實境
多媒體系統07_Android App影音互動擴增實境
 
多媒體系統06_影音編輯軟體Movie Maker
多媒體系統06_影音編輯軟體Movie Maker多媒體系統06_影音編輯軟體Movie Maker
多媒體系統06_影音編輯軟體Movie Maker
 
多媒體系統05_Android App圖形元件
多媒體系統05_Android App圖形元件多媒體系統05_Android App圖形元件
多媒體系統05_Android App圖形元件
 
多媒體系統04_GIMP繪圖、特效、動畫
多媒體系統04_GIMP繪圖、特效、動畫多媒體系統04_GIMP繪圖、特效、動畫
多媒體系統04_GIMP繪圖、特效、動畫
 
多媒體系統03_GIMP影像合成與圖層應用
多媒體系統03_GIMP影像合成與圖層應用多媒體系統03_GIMP影像合成與圖層應用
多媒體系統03_GIMP影像合成與圖層應用
 

人工智慧06_決策樹

  • 2. 報告大綱-決策樹 決策樹定義和說明 以資訊增益(Information Gain)為基礎之決策樹方法 ◦ 疊代二元樹3代(Iterative Dichotomiser 3, ID3) ◦ C4.5/C5.0 ◦ C5.0決策樹方法實作 以Gini係數為基礎之決策樹方法 ◦ 分類和回歸樹(Classification And Regression Trees, CART) ◦ CART決策樹方法實作 以卡方統計量(Chi-Square Statistic)為基礎之決策樹方法 ◦ 卡方自動交互檢視法(Chi-Square Automatic Interaction Detector, CHAID) 決策樹實例應用 2
  • 3. 決策樹定義和說明 決策樹(Decision Tree)具有監督式的特徵萃取與描述的功能,將輸入資料屬性根據目標設 定來選擇分支資料屬性和分支方式,並以樹枝狀的層級架構呈現,以萃取分類規則。經過 修整後的決策樹模型可以作為資料探索或預測。決策樹可以找出目標屬性和各個資料屬性 的層級關係。 3 顧客編號 婚姻 收入 購買不動產 C01 單身 低 無 C02 單身 高 無 C03 已婚 低 有 C04 已婚 高 有 顧客編號 婚姻 收入 購買不動產 C01 0 0 0 C02 0 1 0 C03 1 0 1 C04 1 1 1 單身:0 已婚:1 低:0 高:1 無:0 有:1 不會購買不動產 會購買不動產
  • 4. 決策樹定義和說明 4 顧客編號 婚姻 收入 購買不動產 C01 0 0 0 C02 0 1 0 C03 1 0 1 C04 1 1 1 不會購買不動產 會購買不動產 採用自頂端向下搜尋可能的決策樹空間 演算法概念 ◦ 資料設定:將原始資料分成訓練資料和測試資料 ◦ 決策樹生成:運用訓練資料來建立決策樹,過程中依據屬性選擇指標(如:資訊增益、Gini係數、 卡方統計量)來評估選擇哪個屬性做分支的依據 ◦ 剪枝:參考測試資料,並進行決策樹修剪 ◦ 將以上步驟不斷重複進行,直到所有的新產生節點都是樹葉節點為止 以資訊增益為基礎之決策樹方法:ID3、C4.5/C5.0 以Gini係數為基礎之決策樹方法:CART 以卡方統計量為基礎之決策樹方法:CHAID
  • 5. 以資訊增益為基礎之決策樹方法 運用資訊增益(Information Gain)作為分支準則 ◦ ID3 運用資訊增益比(Information Gain Ratio)作為分支準則 ◦ C4.5/C5.0 5       k i ii ppInfo 1 2log購買不動產 顧客編號 婚姻 收入 購買不動產 C01 0 0 0 C02 0 1 0 C03 1 0 1 C04 1 1 1      購買不動產購買不動產婚姻 婚姻InfoInfoGain           已婚已婚單身單身購買不動產婚姻 InfoInfoInfo  PrPr              已購買不動產已購買不動產未購買不動產未購買不動產購買不動產 PrlogPrPrlogPr 22 Info      婚姻 婚姻 婚姻 SplitInfo Gain GR               已婚已婚單身單身婚姻 PrlogPrPrlogPr 22 SplitInfo 此資訊增益代表在取得「婚姻」資料屬性 的情況下,獲得的資訊量
  • 6. ID3決策樹方法 Info函式稱為熵(Entropy),常用來衡量資料亂度 6 購買不動產 0 0 0 0       k i ii ppInfo 1 2log購買不動產              已購買不動產已購買不動產未購買不動產未購買不動產購買不動產 PrlogPrPrlogPr 22 Info         000 0log01log1 22   購買不動產Info 購買不動產 1 0 0 0         .810.50.310 25.0log25.0 75.0log75.0 2 2    購買不動產Info 購買不動產 1 1 0 0         1.50.50 .50log.50 .50log.50 2 2    購買不動產Info 購買不動產 1 1 1 1         000 1log10log0 22   購買不動產Info 在此情境,資料亂度最高 在此情境,資料亂度最低在此情境,資料亂度最低
  • 7. ID3決策樹方法 資訊增益(Information Gain)計算方式 7 顧客編號 婚姻 收入 購買不動產 C01 0 0 0 C02 0 1 0 C03 1 0 1 C04 1 1 1                     1.50.505.0log5.05.0log5.0 4 2 log 4 2 4 2 log 4 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info                     0000log01log1 2 0 log 2 0 2 2 log 2 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產單身Info                     0001log10log0 2 2 log 2 2 2 0 log 2 0 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產已婚Info 在得知「單身」的情況下, 可將資料亂度降到0 在得知「已婚」的情況下, 可將資料亂度降到0 案例1
  • 8. ID3決策樹方法 資訊增益(Information Gain)計算方式 8 顧客編號 婚姻 收入 購買不動產 C01 0 0 0 C02 0 1 0 C03 1 0 1 C04 1 1 1               005.005.0 4 2 4 2 PrPr   已婚單身 已婚已婚單身單身購買不動產婚姻 InfoInfo InfoInfoInfo       101   購買不動產購買不動產婚姻 婚姻InfoInfoGain 由於在得知「單身」和「已婚」的情況下, 分別可以將資料亂度降到0 因此在得知「婚姻」屬性的情況下,可將 資料亂度降到0在得知「婚姻」的情況下, 可以得到許多資訊量 案例1
  • 9. ID3決策樹方法 資訊增益(Information Gain)計算方式 9 顧客編號 婚姻 收入 購買不動產 C01 0 0 0 C02 0 1 0 C03 1 0 1 C04 1 1 1                     1.50.505.0log5.05.0log5.0 4 2 log 4 2 4 2 log 4 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info                     10.50.50.5log0.50.5log0.5 2 1 log 2 1 2 1 log 2 1 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產低收入Info                     10.50.50.5log0.50.5log0.5 2 1 log 2 1 2 1 log 2 1 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產高收入Info 在得知「低收入」的情況 下,資料亂度仍為1 在得知「高收入」的情況 下,資料亂度仍為1 案例1
  • 10. ID3決策樹方法 資訊增益(Information Gain)計算方式 10 顧客編號 婚姻 收入 購買不動產 C01 0 0 0 C02 0 1 0 C03 1 0 1 C04 1 1 1               115.015.0 4 2 4 2 PrPr   高收入低收入 高收入高收入低收入低收入購買不動產收入 InfoInfo InfoInfoInfo       011   購買不動產購買不動產收入 收入InfoInfoGain 在得知「收入」的情況下, 並沒有得到任何資訊量 由於在得知「低收入」和「高收入」的情 況下,資料亂度仍分別為1 因此在得知「收入」屬性的情況下,資料 亂度仍為1 案例1
  • 11. ID3決策樹方法 生成決策樹的方式 判斷資訊增益最高的資料屬性作為節點 決策樹 11 顧客編號 婚姻 收入 購買不動產 C01 0 0 0 C02 0 1 0 C03 1 0 1 C04 1 1 1    收入婚姻 GainGain  婚姻 不會 購買不動產 會 購買不動產 單身 婚姻=0 已婚 婚姻=1 「婚姻」比「收入」可以取得更多的資訊量, 故將「婚姻」設定為根節點 案例1
  • 12. ID3決策樹方法-不適用情境 決策樹不適用情境:僅考慮資料屬性與目標屬性的關聯性,未考慮資料屬性間的關聯性, 當每個資料屬性皆與目標屬性互相獨立,將會不準確 12 顧客編號 婚姻 收入 購買不動產 C11 已婚 低 無 C12 單身 高 無 C13 已婚 低 有 C14 單身 高 有 顧客編號 婚姻 收入 購買不動產 C11 1 0 0 C12 0 1 0 C13 1 0 1 C14 0 1 1 單身:0 已婚:1 低:0 高:1 無:0 有:1 由於資料屬性皆無參考價值, 所以無法生成決策樹 案例2
  • 13. ID3決策樹方法-不適用情境 資訊增益(Information Gain)計算方式 13 顧客編號 婚姻 收入 購買不動產 C11 1 0 0 C12 0 1 0 C13 1 0 1 C14 0 1 1                     1.50.505.0log5.05.0log5.0 4 2 log 4 2 4 2 log 4 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info                     15.05.05.0log5.05.0log5.0 2 1 log 2 1 2 1 log 2 1 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產單身Info                     15.05.05.0log5.05.0log5.0 2 1 log 2 1 2 1 log 2 1 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產已婚Info 在得知「單身」的情況下, 資料亂度仍為1 在得知「已婚」的情況下, 資料亂度仍為1 案例2
  • 14. ID3決策樹方法-不適用情境 資訊增益(Information Gain)計算方式 14               115.015.0 4 2 4 2 PrPr   已婚單身 已婚已婚單身單身購買不動產婚姻 InfoInfo InfoInfoInfo       011   購買不動產購買不動產婚姻 婚姻InfoInfoGain 由於在得知「單身」和「已婚」的情況下, 資料亂度仍分別為1 因此在得知「婚姻」屬性的情況下,資料 亂度仍為1在得知「婚姻」的情況下, 並沒有得到任何資訊量 顧客編號 婚姻 收入 購買不動產 C11 1 0 0 C12 0 1 0 C13 1 0 1 C14 0 1 1 案例2
  • 15. ID3決策樹方法-不適用情境 資訊增益(Information Gain)計算方式 15                     1.50.505.0log5.05.0log5.0 4 2 log 4 2 4 2 log 4 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info                     10.50.50.5log0.50.5log0.5 2 1 log 2 1 2 1 log 2 1 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產低收入Info                     10.50.50.5log0.50.5log0.5 2 1 log 2 1 2 1 log 2 1 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產高收入Info 在得知「低收入」的情況 下,資料亂度仍為1 在得知「高收入」的情況 下,資料亂度仍為1 顧客編號 婚姻 收入 購買不動產 C11 1 0 0 C12 0 1 0 C13 1 0 1 C14 0 1 1 案例2
  • 16. ID3決策樹方法-不適用情境 資訊增益(Information Gain)計算方式 16               115.015.0 4 2 4 2 PrPr   高收入低收入 高收入高收入低收入低收入購買不動產收入 InfoInfo InfoInfoInfo       011   購買不動產購買不動產收入 收入InfoInfoGain 在得知「收入」的情況下, 並沒有得到任何資訊量 由於在得知「低收入」和「高收入」的情 況下,資料亂度仍分別為1 因此在得知「收入」屬性的情況下,資料 亂度仍為1 顧客編號 婚姻 收入 購買不動產 C11 1 0 0 C12 0 1 0 C13 1 0 1 C14 0 1 1 由於得知「婚姻」和「收入」的情況下,得到的資訊量皆為0 所有資料屬性皆無參考價值,所以無法生成決策樹 案例2
  • 17. 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 ID3決策樹方法-適用情境 決策樹適用情境:資料切割後,仍有資料屬性與目標屬性相依 17 單身:0 已婚:1 青年:0 中年:1 無:0 有:1 顧客編號 婚姻 年齡 收入 購買不動產 C21 已婚 青年 高 有 C22 已婚 中年 低 有 C23 已婚 青年 高 有 C24 已婚 中年 低 有 C25 單身 中年 高 有 C26 單身 中年 低 有 C27 單身 青年 高 無 C28 單身 青年 低 無 低:0 高:1 不會購買不動產 會購買不動產會購買不動產 案例3
  • 18. ID3決策樹方法-適用情境 資訊增益(Information Gain)計算方式 18                     18.0.310.5075.0log75.025.0log25.0 8 6 log 8 6 8 2 log 8 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info                     15.05.05.0log5.05.0log5.0 4 2 log 4 2 4 2 log 4 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產單身Info                     0001log10log0 4 4 log 4 4 4 0 log 4 0 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產已婚Info 在得知「單身」的情況下, 資料亂度仍為1 在得知「已婚」的情況下, 可將資料亂度降到0 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3
  • 19. ID3決策樹方法-適用情境 資訊增益(Information Gain)計算方式 19               5.005.015.0 8 4 8 4 PrPr   已婚單身 已婚已婚單身單身購買不動產婚姻 InfoInfo InfoInfoInfo       31.05.081.0   購買不動產購買不動產婚姻 婚姻InfoInfoGain 得知「單身」的情況下,資料亂度為1;而 得知「已婚」的情況下,資料亂度為0,且 「單身」和「已婚」各佔一半的資料 因此在得知「婚姻」屬性的情況下,可將 資料亂度降到0.5在得知「婚姻」的情況下, 可以得到資訊量0.31 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3
  • 20.                     0001log10log0 4 4 log 4 4 4 0 log 4 0 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產中年Info ID3決策樹方法-適用情境 資訊增益(Information Gain)計算方式 20                     18.0.310.5075.0log75.025.0log25.0 8 6 log 8 6 8 2 log 8 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info                     15.05.05.0log5.05.0log5.0 4 2 log 4 2 4 2 log 4 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產青年Info 在得知「青年」的情況下, 資料亂度仍為1 在得知「中年」的情況下, 可將資料亂度降到0 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3
  • 21. ID3決策樹方法-適用情境 資訊增益(Information Gain)計算方式 21               5.005.015.0 8 4 8 4 PrPr   中年青年 中年中年青年青年購買不動產年齡 InfoInfo InfoInfoInfo       31.05.081.0   購買不動產購買不動產年齡 年齡InfoInfoGain 得知「青年」的情況下,資料亂度為1;而 得知「中年」的情況下,資料亂度為0,且 「青年」和「中年」各佔一半的資料 因此在得知「年齡」屬性的情況下,可將 資料亂度降到0.5 在得知「年齡」的情況下, 可以得到資訊量0.31 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3
  • 22. ID3決策樹方法-適用情境 資訊增益(Information Gain)計算方式 22                     18.0.310.5075.0log75.025.0log25.0 8 6 log 8 6 8 2 log 8 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info                     18.031.05.075.0log75.025.0log25.0 4 3 log 4 3 4 1 log 4 1 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產低收入Info 在得知「低收入」的情況 下,資料亂度仍為0.81 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3                     18.031.05.075.0log75.025.0log25.0 4 3 log 4 3 4 1 log 4 1 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產高收入Info 在得知「高收入」的情況 下,資料亂度仍為0.81
  • 23. ID3決策樹方法-適用情境 資訊增益(Information Gain)計算方式 23               81.081.05.081.05.0 8 4 8 4 PrPr   高收入低收入 高收入高收入低收入低收入購買不動產收入 InfoInfo InfoInfoInfo       081.081.0   購買不動產購買不動產收入 收入InfoInfoGain 得知「低收入」的情況下,資料亂度為0.81; 而得知「高收入」的情況下,資料亂度為0.81, 且「低收入」和「高收入」各佔一半的資料 因此在得知「婚姻」屬性的情況下,可將資料 亂度仍為0.81在得知「收入」的情況下, 並沒有得到任何資訊量 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3
  • 24. ID3決策樹方法-適用情境 生成決策樹的方式 判斷資訊增益最高的資料屬性作為節點 決策樹 24      收入年齡婚姻 GainGainGain  婚姻 ? 會 購買不動產 單身 婚姻=0 已婚 婚姻=1 「婚姻」比「收入」可以取得更多的資訊量, 故將「婚姻」設定為根節點 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3
  • 25.                     0001log10log0 2 2 log 2 2 2 0 log 2 0 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產中年Info ID3決策樹方法-適用情境 資訊增益(Information Gain)計算方式 25                     1.50.505.0log5.05.0log5.0 4 2 log 4 2 4 2 log 4 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info                     0000log01log1 2 0 log 2 0 2 2 log 2 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產青年Info 在得知「中年」的情況下, 可將資料亂度降到0 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3 在得知「青年」的情況下, 可將資料亂度降到0
  • 26. ID3決策樹方法-適用情境 資訊增益(Information Gain)計算方式 26               005.005.0 4 2 4 2 PrPr   中年青年 中年中年青年青年購買不動產年齡 InfoInfo InfoInfoInfo       101   購買不動產購買不動產年齡 年齡InfoInfoGain 得知「青年」的情況下,資料亂度為0;而 得知「中年」的情況下,資料亂度為0,且 「青年」和「中年」各佔一半的資料 因此在得知「年齡」屬性的情況下,可將 資料亂度降到0 在得知「年齡」的情況下, 可以得到資訊量1 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3
  • 27. ID3決策樹方法-適用情境 資訊增益(Information Gain)計算方式 27                     15.05.05.0log5.05.0log5.0 2 1 log 2 1 2 1 log 2 1 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產低收入Info 在得知「低收入」的情況 下,資料亂度仍為1 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3                     15.05.05.0log5.05.0log5.0 2 1 log 2 1 2 1 log 2 1 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產高收入Info 在得知「高收入」的情況 下,資料亂度仍為1                     1.50.505.0log5.05.0log5.0 4 2 log 4 2 4 2 log 4 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info
  • 28. ID3決策樹方法-適用情境 資訊增益(Information Gain)計算方式 28               115.015.0 4 2 4 2 PrPr   高收入低收入 高收入高收入低收入低收入購買不動產收入 InfoInfo InfoInfoInfo       011   購買不動產購買不動產收入 收入InfoInfoGain 得知「低收入」的情況下,資料亂度為1; 而得知「高收入」的情況下,資料亂度為1, 且「低收入」和「高收入」各佔一半的資料 因此在得知「收入」屬性的情況下,可將資 料亂度仍為1 在得知「收入」的情況下, 並沒有得到任何資訊量 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3
  • 29. ID3決策樹方法-適用情境 生成決策樹的方式 判斷資訊增益最高的資料屬性作為節點 決策樹 29    收入年齡 GainGain  婚姻 年齡 會 購買不動產 單身 婚姻=0 已婚 婚姻=1 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3 青年 年齡=0 中年 年齡=1 會 購買不動產 不會 購買不動產 不會購買不動產 會購買不動產會購買不動產 「年齡」比「收入」可以取得更多的資訊量, 故將「年齡」設定為節點
  • 30. 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 C4.5/C5.0決策樹方法 C4.5/C5.0與ID3不同的地方在於運用「資訊增益比(Information Gain Ratio)」作為分支準則 30 單身:0 已婚:1 青年:0 中年:1 無:0 有:1 顧客編號 婚姻 年齡 收入 購買不動產 C21 已婚 青年 高 有 C22 已婚 中年 低 有 C23 已婚 青年 高 有 C24 已婚 中年 低 有 C25 單身 中年 高 有 C26 單身 中年 低 有 C27 單身 青年 高 無 C28 單身 青年 低 無 低:0 高:1 不會購買不動產 會購買不動產會購買不動產 案例3
  • 31. C4.5/C5.0決策樹方法 資訊增益(Information Gain)計算方式 31                     18.0.310.5075.0log75.025.0log25.0 8 6 log 8 6 8 2 log 8 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產購買不動產Info                     15.05.05.0log5.05.0log5.0 4 2 log 4 2 4 2 log 4 2 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產單身Info                     0001log10log0 4 4 log 4 4 4 0 log 4 0 PrlogPrPrlogPr 2222 22                           已購買不動產已購買不動產未購買不動產未購買不動產已婚Info 在得知「單身」的情況下, 資料亂度仍為1 在得知「已婚」的情況下, 可將資料亂度降到0 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3
  • 32. C4.5/C5.0決策樹方法 資訊增益(Information Gain)計算方式 32               5.005.015.0 8 4 8 4 PrPr   已婚單身 已婚已婚單身單身購買不動產婚姻 InfoInfo InfoInfoInfo       31.05.081.0   購買不動產購買不動產婚姻 婚姻InfoInfoGain 得知「單身」的情況下,資料亂度為1;而 得知「已婚」的情況下,資料亂度為0,且 「單身」和「已婚」各佔一半的資料 因此在得知「婚姻」屬性的情況下,可將 資料亂度降到0.5 在得知「婚姻」的情況下, 可以得到資訊量0.31 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3
  • 33. C4.5/C5.0決策樹方法 資訊增益比(Information Gain Ratio)計算方式 33 「婚姻」屬性本身的資料亂度為1 在得知「婚姻」的情況下, 可以得到資訊增益比0.31 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3       31.0 1 31.0   婚姻 婚姻 婚姻 SplitInfo Gain GR                     15.05.05.0log5.05.0log5.0 8 4 log 8 4 8 4 log 8 4 PrlogPrPrlogPr 2222 22                           已婚已婚單身單身婚姻SplitInfo
  • 34. C4.5/C5.0決策樹方法 資訊增益比(Information Gain Ratio)計算方式 34 「年齡」屬性本身的資料亂度為1 在得知「年齡」的情況下, 可以得到資訊增益比0.31 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3       31.0 1 31.0   年齡 年齡 年齡 SplitInfo Gain GR                     15.05.05.0log5.05.0log5.0 8 4 log 8 4 8 4 log 8 4 PrlogPrPrlogPr 2222 22                           中年中年青年青年年齡SplitInfo
  • 35. C4.5/C5.0決策樹方法 資訊增益比(Information Gain Ratio)計算方式 35 「收入」屬性本身的資料亂度為1 在得知「收入」的情況下, 得到資訊增益比0 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3       0 1 0   收入 收入 收入 SplitInfo Gain GR                     15.05.05.0log5.05.0log5.0 8 4 log 8 4 8 4 log 8 4 PrlogPrPrlogPr 2222 22                           高收入高收入低收入低收入收入SplitInfo
  • 36. C4.5/C5.0決策樹方法 生成決策樹的方式 判斷資訊增益比最高的資料屬性作為節點 決策樹 36      收入年齡婚姻 GRGRGR  婚姻 ? 會 購買不動產 單身 婚姻=0 已婚 婚姻=1 「婚姻」比「收入」可以取得更高的資訊增益比, 故將「婚姻」設定為根節點 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3
  • 37. C4.5/C5.0決策樹方法 37 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3 資訊增益比(Information Gain Ratio)計算方式 「年齡」屬性本身的資料亂度為1 在得知「年齡」的情況下, 可以得到資訊增益比1       1 1 1   年齡 年齡 年齡 SplitInfo Gain GR                     15.05.05.0log5.05.0log5.0 4 2 log 4 2 4 2 log 4 2 PrlogPrPrlogPr 2222 22                           中年中年青年青年年齡SplitInfo
  • 38. C4.5/C5.0決策樹方法 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3 資訊增益比(Information Gain Ratio)計算方式 「收入」屬性本身的資料亂度為1 在得知「收入」的情況下, 得到資訊增益比0       0 1 0   收入 收入 收入 SplitInfo Gain GR                     15.05.05.0log5.05.0log5.0 4 2 log 4 2 4 2 log 4 2 PrlogPrPrlogPr 2222 22                           高收入高收入低收入低收入收入SplitInfo
  • 39. C4.5/C5.0決策樹方法 生成決策樹的方式 判斷資訊增益比最高的資料屬性作為節點 決策樹 39    收入年齡 GRGR  婚姻 年齡 會 購買不動產 單身 婚姻=0 已婚 婚姻=1 「年齡」比「收入」可以取得更高的資訊增益比, 故將「年齡」設定為節點 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3 青年 年齡=0 中年 年齡=1 會 購買不動產 不會 購買不動產 不會購買不動產 會購買不動產會購買不動產
  • 40. C4.5/C5.0決策樹方法 為什麼需要資訊增益比?當同一個資料屬性有多個不同資料項目時,可以正規化 40 年齡 單身 單身 單身 已婚 已婚 已婚         1.50.50 .50log.50 .50log.50 2 2    婚姻SplitInfo 年齡 青年 青年 中年 中年 老年 老年            1.590.53.530.530 .330log.330 .330log.330 .330log.330 2 2 2     年齡SplitInfo 年齡 購買不動產 單身 有 單身 無 單身 有 已婚 有 已婚 有 已婚 有       46.00.46.920   購買不動產 購買不動產 婚姻 年齡Info Info Gain       59.00.33.920   購買不動產 購買不動產 年齡 年齡Info Info Gain 年齡 購買不動產 青年 有 青年 無 中年 有 中年 有 老年 有 老年 有       46.0 1 46.0   婚姻 婚姻 婚姻 SplitInfo Gain GR       37.0 59.1 59.0   年齡 年齡 年齡 SplitInfo Gain GR 2個不同項目時,資 料亂度最大值為1 3個不同項目時,資 料亂度最大值為1.59 只考慮資訊增益,將 由婚姻資料屬性勝出 考慮資訊增益比,將 由年齡資料屬性勝出
  • 41. C5.0決策樹方法實作 建立訓練資料,並儲存為csv檔 請參考「案例3_購買不動產(訓練資料).csv」 41 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 單身:0 已婚:1 青年:0 中年:1 無:0 有:1 顧客編號 婚姻 年齡 收入 購買不動產 C21 已婚 青年 高 有 C22 已婚 中年 低 有 C23 已婚 青年 高 有 C24 已婚 中年 低 有 C25 單身 中年 高 有 C26 單身 中年 低 有 C27 單身 青年 高 無 C28 單身 青年 低 無 低:0 高:1
  • 43. C5.0決策樹方法實作 #讀取訓練資料 training_data <- read.csv(file.choose(), header = TRUE) #轉換為因子矩陣 training_data <- data.frame(lapply(training_data, as.factor)) 43
  • 44. C5.0決策樹方法實作 #訓練C5.0決策樹 model <- C5.0(Class ~ ., data = training_data) #繪製決策樹 plot(model) 44 設定目標欄位為「Class」, 其他欄位為訓練資料
  • 45. C5.0決策樹方法實作 #讀取測試資料 testing_data <- read.csv(file.choose(), header = TRUE) #轉換為因子矩陣 testing_data <- data.frame(lapply(testing_data, as.factor)) 45
  • 46. C5.0決策樹方法實作 #將測試資料代入模型進行預測,並取得 預測結果 pred <- predict(model, testing_data) #運用表格呈現和比對預測結果 table(pred, testing_data$Class) 46
  • 47. C5.0決策樹方法實作 可經由table瀏覽分類結果 47 正確答案為 「目標類別」 正確答案為 「非目標類別」 機器答案為 「目標類別」 True Positive (TP) False Positive (FP) (型一(Type I)誤差) 機器答案為 「非目標類別」 False Negative (FN) (型二(Type II)誤差) True Negative (TN) 不購買不動產 購買不動產 不購買不動產 2 0 購買不動產 0 6 假設測試資料同訓練資料 %100 2 2 Precision    FPTP TP %100 2 2 Recall    FNTP TP
  • 48. 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 以Gini係數為基礎之決策樹方法 分類和回歸樹(Classification And Regression Trees, CART)為以Gini係數為基礎之決策樹方法 48 單身:0 已婚:1 青年:0 中年:1 無:0 有:1 顧客編號 婚姻 年齡 收入 購買不動產 C21 已婚 青年 高 有 C22 已婚 中年 低 有 C23 已婚 青年 高 有 C24 已婚 中年 低 有 C25 單身 中年 高 有 C26 單身 中年 低 有 C27 單身 青年 高 無 C28 單身 青年 低 無 低:0 高:1 不會購買不動產 會購買不動產會購買不動產 案例3 Gini係數為不純度(Impurity)
  • 49. CART決策樹方法 Gini係數計算方式 49            5.0.5015.05.01 PrPr1 22 22   已購買不動產未購買不動產購買不動產Gini 在得知「婚姻」的情況下, Gini係數值下降0.25 原始的Gini係數值為0.5 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3                               25.005.05.05.0 4 4 4 0 1 8 4 4 2 4 2 1 8 4 |Pr|Pr1Pr |Pr|Pr1Pr PrPr 2222 22 22                                                               已婚已購買不動產已婚未購買不動產已婚 單身已購買不動產單身未購買不動產單身 已婚已婚單身單身購買不動產婚姻 GiniGiniGini       25.025.05.0  購買不動產購買不動產婚姻 婚姻GiniGiniGini
  • 50. CART決策樹方法 Gini係數計算方式 50            5.0.5015.05.01 PrPr1 22 22   已購買不動產未購買不動產購買不動產Gini 在得知「年齡」的情況下, Gini係數值下降0.25 原始的Gini係數值為0.5 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3                               25.005.05.05.0 4 4 4 0 1 8 4 4 2 4 2 1 8 4 |Pr|Pr1Pr |Pr|Pr1Pr PrPr 2222 22 22                                                               中年已購買不動產中年未購買不動產中年 青年已購買不動產青年未購買不動產青年 中年中年青年青年購買不動產年齡 GiniGiniGini       25.025.05.0  購買不動產購買不動產年齡 年齡GiniGiniGini
  • 51. CART決策樹方法 Gini係數計算方式 51            5.0.5015.05.01 PrPr1 22 22   已購買不動產未購買不動產購買不動產Gini 在得知「收入」的情況下, Gini係數值下降0.125 原始的Gini係數值為0.5 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3                               375.0375.05.0375.05.0 4 3 4 1 1 8 4 4 3 4 1 1 8 4 |Pr|Pr1Pr |Pr|Pr1Pr PrPr 2222 22 22                                                               高收入已購買不動產高收入未購買不動產高收入 低收入已購買不動產低收入未購買不動產低收入 高收入高收入低收入低收入購買不動產收入 GiniGiniGini       125.0375.05.0  購買不動產購買不動產收入 收入GiniGiniGini
  • 52. CART決策樹方法 生成決策樹的方式 判斷Gini值減少最多的資料屬性作為節點 決策樹 52      收入年齡婚姻 GiniGiniGini  婚姻 ? 會 購買不動產 單身 婚姻=0 已婚 婚姻=1 「婚姻」比「收入」減少更多的不純度,故 將「婚姻」設定為根節點 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3
  • 53. CART決策樹方法 Gini係數計算方式 53            5.0.5015.05.01 PrPr1 22 22   已購買不動產未購買不動產購買不動產Gini 在得知「年齡」的情況下, Gini係數值下降0.5 原始的Gini係數值為0.5 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3                               005.005.0 2 2 2 0 1 4 2 2 0 2 2 1 4 2 |Pr|Pr1Pr |Pr|Pr1Pr PrPr 2222 22 22                                                               中年已購買不動產中年未購買不動產中年 青年已購買不動產青年未購買不動產青年 中年中年青年青年購買不動產年齡 GiniGiniGini       5.005.0  購買不動產購買不動產年齡 年齡GiniGiniGini
  • 54. CART決策樹方法 Gini係數計算方式 54            5.0.5015.05.01 PrPr1 22 22   已購買不動產未購買不動產購買不動產Gini 在得知「收入」的情況下, Gini係數值下降0 原始的Gini係數值為0.5 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3                               5.05.05.05.05.0 2 1 2 1 1 4 2 2 1 2 1 1 4 2 |Pr|Pr1Pr |Pr|Pr1Pr PrPr 2222 22 22                                                               高收入已購買不動產高收入未購買不動產高收入 低收入已購買不動產低收入未購買不動產低收入 高收入高收入低收入低收入購買不動產收入 GiniGiniGini       05.05.0  購買不動產購買不動產收入 收入GiniGiniGini
  • 55.    收入年齡 GiniGini  CART決策樹方法 生成決策樹的方式 判斷Gini值減少最多的資料屬性作為節點 決策樹 55 婚姻 年齡 會 購買不動產 單身 婚姻=0 已婚 婚姻=1 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3 青年 年齡=0 中年 年齡=1 會 購買不動產 不會 購買不動產 「年齡」比「收入」減少更多的不純度,故 將「年齡」設定為節點 不會購買不動產 會購買不動產會購買不動產
  • 57. CART決策樹方法實作 #讀取訓練資料 training_data <- read.csv(file.choose(), header = TRUE) #轉換為因子矩陣 training_data <- data.frame(lapply(training_data, as.factor)) 57
  • 58. CART決策樹方法實作 #訓練CART決策樹 model <- rpart(Class ~ ., data = training_data, method="class", control=rpart.control(minsplit=1)) #繪製決策樹 library(partykit) plot(as.party(model)) 58 設定目標欄位為「Class」, 其他欄位為訓練資料
  • 59. CART決策樹方法實作 #讀取測試資料 testing_data <- read.csv(file.choose(), header = TRUE) #轉換為因子矩陣 testing_data <- data.frame(lapply(testing_data, as.factor)) 59
  • 60. CART決策樹方法實作 #將測試資料代入模型進行預測,並取得 預測結果 pred <- predict(model, testing_data) #運用表格呈現和比對預測結果 table(pred, testing_data$Class) 60
  • 61. CART決策樹方法實作 可經由table瀏覽分類結果 61 正確答案為 「目標類別」 正確答案為 「非目標類別」 機器答案為 「目標類別」 True Positive (TP) False Positive (FP) (型一(Type I)誤差) 機器答案為 「非目標類別」 False Negative (FN) (型二(Type II)誤差) True Negative (TN) 不購買不動產 購買不動產 不購買不動產 2 0 購買不動產 0 6 假設測試資料同訓練資料 %100 2 2 Precision    FPTP TP %100 2 2 Recall    FNTP TP
  • 62. 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 以卡方統計為基礎之決策樹方法 卡方自動交互檢視法(Chi-Square Automatic Interaction Detector, CHAID)為以卡方統計量為 基礎之決策樹方法 計算每個資料屬性與目標屬性的完全獨立值,再計算真值與完全獨立值的卡方統計量 若真值與完全獨立值相似,則代表該資料屬性與目標屬性獨立,反之,則是具有相依性 取出相依性最高的資料屬性作為節點 62 單身:0 已婚:1 青年:0 中年:1 無:0 有:1 顧客編號 婚姻 年齡 收入 購買不動產 C21 已婚 青年 高 有 C22 已婚 中年 低 有 C23 已婚 青年 高 有 C24 已婚 中年 低 有 C25 單身 中年 高 有 C26 單身 中年 低 有 C27 單身 青年 高 無 C28 單身 青年 低 無 低:0 高:1 案例3
  • 63. CHAID決策樹方法 婚姻與購買不動產的卡方統計量計算方式 卡方統計量 63 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3           67.2 3 34 3 32 1 10 1 12 2222 2         婚姻 未購買不動產 已購買不動產 總和 單身 2 (1) 2 (3) 4 已婚 0 (1) 4 (3) 4 總和 2 6 8 完全獨立值算法: 欄總和 * 列總和 / 總數 6 * 4 / 8 = 3
  • 64. CHAID決策樹方法 64 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3 年齡與購買不動產的卡方統計量計算方式 卡方統計量 完全獨立值算法: 欄總和 * 列總和 / 總數 6 * 4 / 8 = 3           67.2 3 34 3 32 1 10 1 12 2222 2         年齡 未購買不動產 已購買不動產 總和 青年 2 (1) 2 (3) 4 中年 0 (1) 4 (3) 4 總和 2 6 8
  • 65. CHAID決策樹方法 65 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3 收入與購買不動產的卡方統計量計算方式 卡方統計量 完全獨立值算法: 欄總和 * 列總和 / 總數 6 * 4 / 8 = 3           0 3 33 3 33 1 11 1 11 2222 2         收入 未購買不動產 已購買不動產 總和 低收入 1 (1) 3 (3) 4 高收入 1 (1) 3 (3) 4 總和 2 6 8
  • 66. CHAID決策樹方法 生成決策樹的方式 判斷卡方統計量最多的資料屬性作為節點 決策樹 66      收入年齡婚姻 222   婚姻 ? 會 購買不動產 單身 婚姻=0 已婚 婚姻=1 「婚姻」比「收入」更為偏離完全獨立值, 故將「婚姻」設定為根節點 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3
  • 67. CHAID決策樹方法 67 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3 年齡與購買不動產的卡方統計量計算方式 卡方統計量 完全獨立值算法: 欄總和 * 列總和 / 總數 2 * 2 / 4 = 1 未購買不動產 已購買不動產 總和 青年 2 (1) 0 (1) 2 中年 0 (1) 2 (1) 2 總和 2 2 4           4 1 12 1 10 1 10 1 12 2222 2         年齡
  • 68. CHAID決策樹方法 68 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3 收入與購買不動產的卡方統計量計算方式 卡方統計量 完全獨立值算法: 欄總和 * 列總和 / 總數 2 * 2 / 4 = 1           0 3 33 3 33 1 11 1 11 2222 2         收入 未購買不動產 已購買不動產 總和 低收入 1 (1) 1 (1) 2 高收入 1 (1) 1 (1) 2 總和 2 2 4
  • 69. 生成決策樹的方式 判斷Gini值減少最多的資料屬性作為節點 決策樹    收入年齡 22   CHAID決策樹方法 69 婚姻 年齡 會 購買不動產 單身 婚姻=0 已婚 婚姻=1 顧客編號 婚姻 年齡 收入 購買不動產 C21 1 0 1 1 C22 1 1 0 1 C23 1 0 1 1 C24 1 1 0 1 C25 0 1 1 1 C26 0 1 0 1 C27 0 0 1 0 C28 0 0 0 0 案例3 青年 年齡=0 中年 年齡=1 會 購買不動產 不會 購買不動產 「年齡」比「收入」更為偏離完全獨立值, 故將「年齡」設定為節點
  • 70. 決策樹實例應用 開放資料-臺灣證券交易所 ◦ 網址: http://www.twse.com.tw/zh/page/trading/ex change/FMTQIK.html 資料集服務分類 ◦ 盤後資訊 ◦ 臺灣跨市場指數 ◦ TWSE自行編製指數 ◦ 與FTSE合作編製指數 ◦ 與銳聯合作編製指數 ◦ 與S&PDJI合作編製指數 ◦ 升降幅度/首五日無漲跌幅 ◦ 當日沖銷交易標的及統計 ◦ 融資融券與可借券賣出額度 70
  • 74. 決策樹實例應用 C5.0決策樹實驗結果 74 正確答案為 「目標類別」 正確答案為 「非目標類別」 機器答案為 「目標類別」 True Positive (TP) False Positive (FP) (型一(Type I)誤差) 機器答案為 「非目標類別」 False Negative (FN) (型二(Type II)誤差) True Negative (TN) 中華電_跌 中華電_漲 中華電_跌 5 1 中華電_漲 1 4 %83 6 5 Precision    FPTP TP %83 6 5 Recall    FNTP TP
  • 75. 決策樹實例應用 CART決策樹實驗結果 75 正確答案為 「目標類別」 正確答案為 「非目標類別」 機器答案為 「目標類別」 True Positive (TP) False Positive (FP) (型一(Type I)誤差) 機器答案為 「非目標類別」 False Negative (FN) (型二(Type II)誤差) True Negative (TN) 中華電_跌 中華電_漲 中華電_跌 5 1 中華電_漲 1 4 %83 6 5 Precision    FPTP TP %83 6 5 Recall    FNTP TP