(五)决策树剪枝[预剪枝、后剪枝]

(五)决策树剪枝

剪枝分为”预剪枝(prepruning)”和”后剪枝(postpruning)”两种. 预剪枝是指在决策树构建过程中, 对每个节点在划分前先进行估计, 若不能带来决策树泛化性能提升, 就停止划分, 并将当前结点标记为叶结点. 后剪枝则是先构成一颗完整的决策树, 再考察非叶结点. 若该结点对应的子树替换为叶结点能带来决策树泛化性能提升, 则将该字数替换为叶结点.(机器学习,周志华)。决策时剪枝可以减少过拟合,。

剪枝的具体操作就是,将数据集分为“训练集”和“测试集“,用训练集来生成决策树,用测试集的准确率,来测试每一个分支是否可以剪掉,剪掉后测试集的准确率上升,可以剪掉,反之剪掉后测试集的准确率下降,不可以剪掉。

用下面的情形来说明,”预剪枝“和”后剪枝“的区别。

假设有一个判断西瓜”好“和”坏“的数据集,标签是”好“或”坏“,特征有”脐部”、“色泽”、“纹理”、“触感”、“敲声”。一下数据集只是为了展示,随手编的,不必追求细节。

训练集(展示5条用于示例):

编号脐部色泽纹理触感敲声label
1凹陷青绿清晰硬滑混响好瓜
2凹陷乌黑模糊硬滑沉闷好瓜
3平坦青绿模糊软粘沉闷好瓜
4稍凹乌黑模糊软粘沉闷坏瓜
5稍凹乌黑清晰软粘混响坏瓜

测试集(展示3条用于示例):

编号脐部色泽纹理触感敲声label
1平坦乌黑清晰硬滑混响好瓜
2稍凹乌黑清晰硬滑混响好瓜
3稍凹青绿模糊硬滑沉闷坏瓜

预剪枝

预剪枝是在训练阶段,决策树的每个分支形成时,用测试集去的准确率去进行测试,来判断当前分支是否剪掉。

假设构建一个2层的决策树:

第一个节点按”脐部“进行分裂:

在这里插入图片描述

按“脐部”进行划分后测试集的准确率是提高的,所以按脐部的划分不剪枝。第一层决策树保留。下面考察第二层决策树的划分。

在这里插入图片描述

第二层树的,第一个分支是按色泽划分,划分后测试集的准确率降低了,这个分支要剪掉。第二个分支是按纹理划分的,划分后测试集的准确率是上升的,这个分支保留,第三个是叶子节点没有分支,不需要判断。所以最终,经过预剪枝的决策树是这个样子。

在这里插入图片描述

预剪枝的优缺点

优点

  • 降低过拟合风险
  • 显著减少训练时间和测试时间开销。

缺点

  • 欠拟合风险 :有些分支的当前划分虽然不能提升泛化性能,但 在其基础上进行的后续划分却有可能显著提高性能。预剪枝基于 “ 贪心 ”本质禁止这些分支展开,带来了欠拟合风险。

后剪枝

后剪枝就是先把整颗决策树构造完毕,然后自底向上的对非叶结点进行考察,若将该结点对应的子树换为叶结点能够带来泛华性能的提升,则把该子树替换为叶结点。

在这里插入图片描述

考察“敲声”节点,剪枝后测试集的准确率上升,可以剪枝。

在这里插入图片描述

考察“触感”节点,剪枝后测试集准确率下降,不剪枝。

考察“纹理”节点,剪枝后测试集准确率下降,不剪枝。

考察“色泽”节点,剪枝后测试集准确率不变,不剪枝。

考察“脐部”节点,剪枝后测试集准确率下降,不剪枝。

至此,后剪枝的操作完成。

后剪枝的优缺点

优点

  • 后剪枝比预剪枝保留了更多的分支, 欠拟合风险小 , 泛化性能往往优于预剪枝决策树

缺点

  • 训练时间开销大 :后剪枝过程是在生成完全决策树 之后进行的,需要自底向上对所有非叶结点逐一计算
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值