1. 程式人生 > >ID3的REP(Reduced Error Pruning)剪枝程式碼詳細解釋+周志華《機器學習》決策樹圖4.5、圖4.6、圖4.7繪製

ID3的REP(Reduced Error Pruning)剪枝程式碼詳細解釋+周志華《機器學習》決策樹圖4.5、圖4.6、圖4.7繪製

處理資料物件:離散型資料
資訊計算方式:熵
資料集:西瓜資料集2.0共17條資料
訓練集(用來建立決策樹):西瓜資料集2.0中的第1,2,3,6,7,10,14,15,16,17,4
請注意,書上說是10條,其實是上面列出的11條。
驗證集(用來對決策樹剪枝):西瓜資料集2.0中的5,8,9,11,12,13

注意:
上述訓練集和驗證集由書上特指,
不可自己隨意更改建造決策樹的訓練集或剪枝用的驗證集,否則出不來書上的效果


詳細的程式碼解釋可以直接看程式碼中的註釋,本文不再贅述。
程式碼連結是:
https://github.com/appleyuchi/Decision_Tree_Prune/tree/master/ID3-REP剪枝-Python-視覺化


效果如下:
未剪枝書上效果(周志華《機器學習》第81頁):
在這裡插入圖片描述

程式碼執行效果(mode=prev)
在這裡插入圖片描述


預剪枝書上效果(周志華《機器學習》第81頁):
在這裡插入圖片描述

程式碼執行效果(mode=prev):
在這裡插入圖片描述


後剪枝書上效果(周志華《機器學習》第83頁)
在這裡插入圖片描述

程式碼執行結果(mode=post)
在這裡插入圖片描述


以上後剪枝型別為REP(Reduced Error Pruning),
後剪枝的目的:
提高對驗證集的accuracy以及precision
執行程式碼可知:
剪枝前:accuracy=0.33
剪枝後:accuracy=0.66