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-post_prune-Python-draw

效果如下:
未剪枝书上效果(周志华《机器学习》第81页):
ID3的REP(Reduced Error Pruning)剪枝代码详细解释+周志华《机器学习》决策树图4.5、图4.6、图4.7绘制_第1张图片

代码运行效果(mode=prev)
ID3的REP(Reduced Error Pruning)剪枝代码详细解释+周志华《机器学习》决策树图4.5、图4.6、图4.7绘制_第2张图片

预剪枝书上效果(周志华《机器学习》第81页):
ID3的REP(Reduced Error Pruning)剪枝代码详细解释+周志华《机器学习》决策树图4.5、图4.6、图4.7绘制_第3张图片

代码运行效果(mode=prev):
ID3的REP(Reduced Error Pruning)剪枝代码详细解释+周志华《机器学习》决策树图4.5、图4.6、图4.7绘制_第4张图片

后剪枝书上效果(周志华《机器学习》第83页)
ID3的REP(Reduced Error Pruning)剪枝代码详细解释+周志华《机器学习》决策树图4.5、图4.6、图4.7绘制_第5张图片

代码运行结果(mode=post)
ID3的REP(Reduced Error Pruning)剪枝代码详细解释+周志华《机器学习》决策树图4.5、图4.6、图4.7绘制_第6张图片

以上后剪枝类型为REP(Reduced Error Pruning),
后剪枝的目的:
提高对验证集的accuracy以及precision
运行代码可知:
剪枝前:accuracy=0.33
剪枝后:accuracy=0.66

你可能感兴趣的:(机器学习算法)