决策树-剪枝处理
前言:理解《機器學習》P79-83中的決策樹剪枝示例。
決策樹生成
原始數據集如下所示,前10行為訓練集,后7行為驗證集,由此數據集可生成如下所示的決策樹。
下面解釋未進行剪枝操作的決策樹為何如上圖所示。
不對解釋每個結點和分支,僅重點解釋為何先由屬性「臍部」來劃分類別,以及「臍部」=凹陷后只需要按「色澤」劃分,不再需要按其他的屬性劃分。
根結點包含所有訓練集 D D D,共計 1 、 2 、 3 、 6 、 7 、 10 、 14 、 15 、 16 、 17 {1、2、3、6、7、10、14、15、16、17} 1、2、3、6、7、10、14、15、16、17 的10個樣例,其中正例占比=反例占比=5/10。故,根結點的信息熵: E n t = ? ∑ k = 1 2 p k log ? 2 p k = 1 Ent=-\sum ^{2}_{k=1}p_{k}\log _{2}p_{k}=1 Ent=?∑k=12?pk?log2?pk?=1。
若以屬性「色澤」為類別劃分的屬性,得:
| D 1 D^1 D1 | 青綠 | { 1 , 6 , 10 , 17 } \{1,6,10,17\} {1,6,10,17} | 2/4 | 2/4 | 1 |
| D 2 D^2 D2 | 烏黑 | { 2 , 3 , 7 , 15 } \{2,3,7,15\} {2,3,7,15} | 3/4 | 1/4 | 0.811 |
| D 3 D^3 D3 | 淺白 | { 14 , 16 } \{14,16\} {14,16} | 0 | 1 | 0 |
信息增益: G a i n ( D , 色澤 ) = E n t ( D ) ? ∑ v = 1 3 ∣ D v ∣ ∣ D ∣ E n t ( D v ) = 1 ? ( 4 10 ? 1 + 4 10 ? 0.811 + 2 10 ? 0 ) = 0.2756 ? Gain(D, 色澤)=Ent(D)-\sum ^{3}_{v=1} \dfrac{\rvert D^v \rvert}{\rvert D \rvert}Ent\left( D^{v}\right)=1-(\dfrac{4}{10}*1+\dfrac{4}{10}*0.811+\dfrac{2}{10}*0)=0.2756? Gain(D,色澤)=Ent(D)?∑v=13?∣D∣∣Dv∣?Ent(Dv)=1?(104??1+104??0.811+102??0)=0.2756?
同理,計算出其他屬性的信息增益,根蒂:0.1145;敲聲:0.1735;紋理:0.1735;臍部:0.2756;觸感:0。屬性「臍部」和「色澤」的信息增益同樣大,可任選其一的「臍部」作為劃分屬性。
此外,當「臍部」=凹陷時,訓練樣例為D’={1,2,3,14},「色澤」=青綠、烏黑、淺白的訓練樣例分別為:{1}、{2,3}、{14},各類中類別相同無需再劃分。
樹的剪枝–預剪枝與后剪枝
剪枝(pruning)可以應對過擬合,剪枝處理分為預剪枝(prepruning)和后剪枝(post-pruning)。
| 預剪枝 | 決策樹生成過程中,對每個結點劃分前進行估計,若劃分不能提升決策樹泛化性能,則不劃分 | 邊生成決策樹邊確定是否劃分,可減少決策樹的訓練時間和測試時間 | 存在欠擬合的風險,即有些劃分可能當前不利于模型性能,但后續劃分可能有利于模型 |
| 后剪枝 | 生成決策樹后,自底向上對非葉結點考察,若取消劃分能提升決策樹泛化性能,則取消 | 欠擬合風險小。通常比預剪枝保留更多分支,泛化性能更優 | 因是生成決策樹后再剪枝,訓練和測試時間更多 |
下面借助預剪枝中是否對根結點按屬性「臍部」來劃分和是否對「臍部」=凹陷的訓練樣本按色澤來劃分,理解預剪枝和后剪枝的過程。
是否對根結點按屬性「臍部」來劃分:
- 不按「臍部」來劃分后,因為訓練集中好、壞瓜類別個數相等,所以可選擇好瓜作為類別標記,則對于單結點的決策樹,驗證集中編號 { 4 , 5 , 8 } \{4,5,8\} {4,5,8} 樣例被劃分正確,驗證集精度為 3 / 7 3/7 3/7。
- 按「臍部」來劃分,驗證集中正確分類的編號是: { 4 , 5 , 8 , 11 , 12 } \{4,5,8,11,12\} {4,5,8,11,12},錯誤分類的編號是: { 13 , 9 } \{13,9\} {13,9},故精度為 5 / 7 5/7 5/7。
因此,按「臍部」劃分可提升驗證集精度。
是否對「臍部」=凹陷的訓練樣本按色澤來劃分:劃分前后驗證集精度下降,故不劃分,具體如下圖所示。
注意:確定是否按「色澤」劃分時,驗證集中確定分類的編號要考慮「臍部」=稍凹和平坦中正確的編號。
參考文章或視頻:
決策樹總結(三)剪枝 - 知乎 (zhihu.com)
0413剪枝處理_嗶哩嗶哩___bilibili
總結
- 上一篇: 土方计算软件飞时达16支持10-24CA
- 下一篇: 京沪高铁沪宁城铁昆山南站效果图