【机器学习笔记】决策树剪枝

本文主要是西瓜书里关于决策树剪枝内容的笔记和一些自己的理解。

ps:正在学习,如有错误欢迎指出

一、剪枝的目的

剪枝的目的是为了防止过拟合。

二、剪枝类型

1.预剪枝

预剪枝:在决策树生成过程中,对每个结点在划分先进行估计。

若当前结点的划分带来决策树泛化性能提升,则划分

若当前结点的划分不能带来决策树泛化性能提升,则不划分将当前结点标记为叶结点

如何判断决策树泛化性能是否提升?可以使用一些性能评估方法。

西瓜书中,采用留出法

 由信息增益结果知,选取“脐部”这一特征作为结点,将会有三个分支。

是否要进行划分?对划分前后的泛化性能进行评估。

第一步:是否选择“脐部”为根结点进行划分?

(1)不进行划分:该结点被标记为叶结点,其类别标记为训练样例最多的类别。

 划分前,所有样例集中在根结点:训练集中正类和负类都是5例。

我们选择将这个叶结点标记为“好瓜”,即不管“脐部”等其他属性取值如何,分类结果都为“好瓜”。

用验证集对单结点决策树进行评估:

由上图知,验证集中有3个样例分类正确,4个样例分类错误。验证集精度为\frac{3}{7}\times100%=42.9%。

(2)进行划分:基于信息增益,挑选出属性“脐部”,使用“脐部”进行划分。

此时,验证集精度为\frac{5}{7}x100 %=71.4%>42.9%。因此,用“脐部”进行划分。

第二步:是否对结点②、③、④进行划分?

1.是否对结点②进行划分?

(1)划分前,验证集精度为71.4%。

(2)进行划分:基于信息增益,挑选出属性“色泽”,使用“色泽”进行划分。

用验证集对划分结果进行评估:

此时,验证集精度为57.1%<71.4%,于是预剪枝策略将禁止结点②进行划分。

2.是否对结点③进行划分?

(1)划分前,验证集精度为71.4%。

(2)进行划分:基于信息增益,挑选出属性“根蒂”,使用“根蒂”进行划分。

 用验证集对划分结果进行评估:

 此时,验证集精度仍为71.4%。这个划分不能提升验证集精度,于是,预剪枝策略禁止结点③被划分。

3.是否对结点④进行划分?

结点④,其所含训练样例全部属于同一类,不再进行划分。

最终,预剪枝后生成如下图所示的仅有一层划分的决策树。

2.后剪枝

后剪枝:后剪枝先从训练集生成一棵完整决策树。

 此时,验证集精度为42.9%。

第一步:首先考察结点⑥,把结点⑥替换为叶结点。

替换后的叶结点包含编号为{7,15}的训练样本,于是,该叶结点的类别标记为“好瓜”。

用验证集进行评估:

此时决策树的验证集精度提高至57.1%。于是,后剪枝策略决定剪枝。

第二步:考察结点⑤,若将其领衔的子树替换为叶结点。

替换后的叶结点包含编号为{6,7,15}的训练样本,叶结点类别标记为“好瓜”。

此时决策树验证集精度仍为57.1%。于是可以不进行剪枝。 

以下步骤同理,不再详细展示。

第三步:考察结点②,若将其领衔的子树替换为叶结点。

替换后的叶结点包含编号为{1,2,3,14}的训练样本,叶结点类别标记为“好瓜”。

此时决策树验证集精度提升至71.4%。于是,后剪枝策略执行剪枝。

第四步:考察结点③,若将其领衔的子树替换为叶结点。

替换后的叶结点包含编号为{6,7,15,17}的训练样本,叶结点类别标记为“好瓜”。

此时决策树验证集精度仍为71.4%。于是,可以不进行剪枝。

第五步:考察结点①,若将其领衔的子树替换为叶结点。

所有样例集中在根结点:训练集中正类和负类都是5例。叶结点类别标记为“好瓜”。

此时决策树验证集精度仍为42.9%<71.4%,于是,不进行剪枝。

最终,后剪枝后生成如下图所示的决策树。

三、总结

预剪枝:在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点。

优点:

1.降低了过拟合的风险。

2.减少了决策树的训练时间开销和测试时间开销。

缺点:

1.有欠拟合的风险

后剪枝:先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。

优点:

1.欠拟合风险很小。

2.泛化性能往往优于预剪枝决策树。

缺点:

1.其训练时间开销比未剪枝决策树和预剪枝决策树都要大得多。

参考资料

《机器学习》周志华

  • 24
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值