ID3的REP(Reduced Error Pruning)剪枝代码详细解释+周志华《机器学习》决策树图4.5、图4.6、图4.7绘制

版权声明:本文为博主原创文章,可以随便转载 https://blog.csdn.net/appleyuchi/article/details/83041047

处理数据对象:离散型数据
信息计算方式:熵
数据集:西瓜数据集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

猜你喜欢

转载自blog.csdn.net/appleyuchi/article/details/83041047
今日推荐