機器學習與資料探勘決策樹
2016/04/13 Xavier Yin
決策樹
➤ 以“物種分類表”為例
➤ 用一連串的問題將新物
種歸類為哺乳類或非哺
乳類
➤ 使用節點和方向箭頭,
逐漸形式具有階層式架
構
決策樹
➤ 由以上可歸納出一個
決策樹具有下列三種
節點
➤ 根節點
➤ 內部節點
➤ 葉節點或終端節點
決策樹
➤ 一旦建立好決策樹,則
可從根節點開始,根據
每個節點的條件將測試
資料進行分類並找到結
果。
➤ 假設有筆新資料,其
物種為紅鶴,可以用
該樹來找出其分類為
非哺乳動物。
決策如何建立決策樹
➤ 資料的設定
➤ 將原始資料分為兩組,一步
份為訓練資料,一部份為測
試資料。
➤ 建立決策樹
➤ 使用訓練資料來建立決策樹
,而在每個內部節點,則依
據屬性選擇指標,又稱為節
點分割。
➤ 修剪決策樹
➤ 使用測試資料來進行修剪
➤ 重複上述步驟,直至所有新產
生的節點都是葉節點為止。決
策樹是由已知的屬性集合建構
決策樹的議題
➤ 決策樹演算法的代表
➤ ID3, C4.5, C5.0, CHAID, CART
➤ 決策樹的議題
➤ 訓練資料如何分割?
➤ 如何選擇最佳的分割點
➤ 何時該停止分割?
➤ 過度訓練問題
屬性測試條件的表示方式
➤ 二元屬性
屬性測試條件的表示方式
➤ 名目屬性
屬性測試條件的表示方式
➤ 順序屬性
屬性測試條件的表示方式
➤ 連續性屬性
議題一:如何選擇最好的分割點?
➤ 資訊獲利(Information Gain)
➤ 以不純度(Impurity)為基礎 <=> 同質性(Homogeneous)
➤ Gini Index: CART
➤ Entropy: ID3, C4.5, C5.0
➤ 獲利率: C4.5
➤ 錯誤分類率
議題一:如何選擇最好的分割點?
➤ 不純度的計算步驟
➤ 先計算整個資料集的不純度
➤ 計算各節點的不純度
➤ 計算整合的不純度
➤ 計算資訊獲利(Information Gain)
➤ 計算議題
➤ 二元屬性分割
➤ 名目屬性分割
➤ 二元分割或多元分割
➤ 連續屬性分割
議題一:如何選擇最好的分割點?
➤ GINI Index(吉尼係數) - 二元屬性分割
➤ 計算各節點的GINI係數(意即不純度)
➤ 計算整合後的GINI係數
➤ 比較節點的GINI資訊獲利
➤ 請試著計算該範例
議題一:如何選擇最好的分割點?
➤ GINI Index(吉尼係數) - 名目屬性分割
➤ 計算各節點的GINI係數(意即不純度)
➤ 計算整合後的GINI係數
➤ 比較節點的GINI資訊獲利
➤ 請試著計算該範例
議題一:如何選擇最好的分割點?
➤ GINI Index(吉尼係數) - 連續屬性分割
➤ 計算各節點的GINI係數(意即不純度)
➤ 計算整合後的GINI係數
➤ 比較節點的GINI資訊獲利
➤ 請試著計算該範例
議題一:如何選擇最好的分割點?
➤ Entropy係數(亂度)
➤ 計算各節點的Entropy係數(意即不純度)
➤ 計算整合後的Entropy係數
➤ 比較節點的Entropy資訊獲利
議題一:如何選擇最好的分割點?
➤ Misclassification error(錯誤分類率)
➤ 計算各節點的Error係數(意即不純度)
➤ 計算整合後的Entropy係數
➤ 比較節點的Entropy資訊獲利
議題一:如何選擇最好的分割點?
➤ 資訊獲利的缺點
➤ 會切割出很多分支,但分支內的東西很少,偏好很多的屬性。
➤ 傾向選擇擁有許多不同數值的屬性
➤ 例如“產品編號”,每一個產品的產品編號皆不同。若依產
品編號進行分割,會產生出許多分支,且每一個分支都是
很單一的結果,其資訊獲利會最大。但這個屬性對於建立
決策樹是沒有意義的。
議題一:如何選擇最好的分割點?
➤ 如何改善資訊獲利的缺點
➤ 使用Gain Ratio(獲利率)
➤ SplitINFO類似一個種懲罰項,意即分支越多,其賦予的權重亦
高,以避免其分支越多,形成無意義的切割。
議題一:如何選擇最好的分割點?
➤ 三種係數的分配
議題一:如何選擇最好的分割點?
➤ 練習
議題一:如何選擇最好的分割點?
➤ 練習
議題二:何時該停止分割?
➤ 停止分割的策略
➤ 某個分支子集合內的所有樣本都屬於同一個類別時。
➤ 所有的屬性都用完了,用多數投票法以樣本數較多類別來代表
此葉節點。
➤ 選取屬性後,發生某個分支完全沒有測試樣本的情況。
➤ 測試其資料個數是否達到最小的門檻值。
議題三:過度訓練與訓練不足的問題
➤ 分類錯誤
➤ 訓練錯誤
➤ 重新帶入錯誤或是表面錯誤,意即訓練資料被誤判的個數。
➤ 分類錯誤
➤ 期望模式能夠推論至未見過資料的程度
➤ 過度訓練與訓練不足學習不足
➤ 過度訓練(Overfitting)
➤ 因演算法未學習好而發生,導致模式的訓練及測試的錯誤率過高。
➤ 學習不足(Underfitting)
➤ 樹太小時,其模式的訓練及測試的錯誤率會變得很大,這樣便稱為學習不足
。
過度訓練
➤ 決策樹學習可能遭遇模型過度配適(overfitting)的問題
➤ 過度配適是指模型對於範例的過度訓練,導致模型記住的不是
訓練資料的一般特性,反而是訓練資料的局部特性。對測試樣本
的分類將會變得很不精確。
過度訓練
➤ 導致過度適配的原因
➤ 一種可能原因是訓練範例含有雜訊和離異值
➤ 當訓練數據沒有雜訊時,過度適配也有可能發生,特別是當訓練範例的數量
太少,使得某一些屬性“恰巧”可以很好地分割目前的訓練範例,但卻與實際
的狀況並無太多關係
➤ 從資料找出定律時,該定律愈複雜愈能詳細說明該資料。因為該定律是以
該資料為基礎而找出的。
➤ 但是定律必須能夠適用到其他不同的資料,才有其價值。太過複雜的定律
,由於過度受到其基礎資料的影響,所以可能會變成該定律無法適用到其
他資料。
➤ 像是籤運是吉兇只是單純的機率問題,偶爾抽到吉籤而邀約成功的人,
並不保證其他籤運好的人也能重複同樣的事情,所以需清楚那些是普遍
的定律,那些只是依附於現有資料的現象而已。
過度訓練
➤ 一個部屬的成功經驗
➤ 1) 奉承A上司->上司高興
➤ 2) 送禮給A上司->上司更高興
➤ 3) 按摩A上司肩膀->上司過度高興
➤ 但是因為人事異動,B上司到任,當利用原本的經驗時:
➤ 1) 奉承B上司->上司高興
➤ 2) 送禮給B上司->上司更高興
➤ 3) 按摩B上司肩膀->上司認為是性騷擾很生氣
過度訓練
➤ 從上面的例子看起來不是所有的上司被按摩肩膀都會高興,只
有A上司才會高興,若將A上司的例子列為定律並學習起來,就
會變成過度學習。
➤ 增加樹的階層雖然可以提高預測精確度,但是必須注意到是否
變成過度學習,當在相同的精準度的結果時,如果樹的階層愈
少愈好。
➤ 單純的理論->說明A現象->比較好
➤ 複雜的理論->說明A現象
過度訓練
➤ 上列的思考方式可稱為奧坎的剃刀理論(Ockham’s Razor)增加樹
的階層雖然可以提高預測精確度,但是必須注意到是否變成過度
學習,當在相同的精準度的結果時,如果樹的階層愈少愈好。
➤ 最簡單的解釋就是最好的解釋 ( The simplest explanation is
the best )。
➤ 除非必須,否則無須增多。
➤ 修剪決策樹可移除不可信賴的分支。有兩種修剪方法:
➤ 事前修剪 (Prepruning)
➤ 事後修剪 (Postpruning)
過度訓練
➤ 事前修剪 (Prepruning)
➤ 透過決策樹不再增長的方式來達到修剪的目的。
➤ 當選擇某一個屬性做為決策樹的一個內部節點,若會導致該屬
性的指標值低於事先定義的臨界值時,則應該停止此一節點及
其以下的所有子節點之成長。
➤ 常運用統計門檻值加以衡量,如: 卡方分配、資訊獲利、吉尼
係數...等
➤ 選擇一個合適的臨界值往往很困難。太大的值會導致過度簡
化的決策樹;太小的值會導致過度複雜的決策樹
過度訓練
➤ 事後修剪 (Postpruning)
➤ 由“完全生長”的樹剪去分枝
➤ 作法:
➤ 子樹置換 (Subtree Replacement):選擇某個子樹,並用單
個樹葉來置換它。
➤ 子樹提升 (Subtree Raising):選擇某個子樹,並將該子樹
的樹根用其內部節點或葉節點替代。【較複雜耗時】
過度訓練
➤ 推論錯誤的估計
➤ 重新帶入的估計方式
➤ 假設訓練資料可以完全代表整個資料,而其訓練錯誤便是
所謂的重新帶入錯誤率,然後用此錯誤率來估計推論錯誤
率,並在此假設下,選取一個最低的訓練錯誤率。
➤ 以下列為例:
過度訓練
➤ 模式複雜度
➤ 悲觀錯誤率
過度訓練
➤ 模式複雜度
➤ 悲觀錯誤率
➤ 最小描述長度原則(Minimum description length principle,
MDL)
➤ 估計統計的界限
➤ 使用驗證資料集
決策樹的優點
➤ 決策樹的優點
➤ 建立決策樹的成本相當廉價
➤ 對於未知紀錄(測試資料)的分類速度快
➤ 條理清晰
➤ 方法簡單
➤ 易於掌握
➤ 應用性強
➤ 適用範圍廣
➤ 易理解
➤ 不比其他分類法遜色

機器學習與資料探勘:決策樹