ID3的REP(Reduced Error Pruning)剪枝程式碼詳細解釋+周志華《機器學習》決策樹圖4.5、圖4.6、圖4.7繪製
阿新 • • 發佈:2018-11-02
處理資料物件:離散型資料
資訊計算方式:熵
資料集:西瓜資料集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