首页 分享 决策树(二)——决策树的剪枝(预剪枝和后剪枝)

决策树(二)——决策树的剪枝(预剪枝和后剪枝)

来源:花匠小妙招 时间:2025-01-02 06:52
决策树的剪枝 什么是决策树的剪枝?为什么要剪枝?剪枝策略的分类 预剪枝优缺点 后剪枝后剪枝算法的分类优缺点 奥卡姆剃刀定律预告andTODOReference

什么是决策树的剪枝?

对比日常生活中,环卫工人在大街上给生长茂密的树进行枝叶的修剪。在机器学习的决策树算法中,有对应的剪枝算法。将比较复杂的决策树,化简为较为简单的版本,并且不损失算法的性能。

为什么要剪枝?

剪枝是决策树算法防止过拟合的一种手段,因为在学习过程中,决策树根据训练样本进行拟合,生成了针对于训练数据集精确性极高的模型。但是训练数据集,不可避免是一种有偏的数据。
所以我们为了提高决策树的泛化性能,采取了剪枝的策略。使得决策树不那么对于训练数据精确分类,从而适应任何数据。

剪枝策略的分类

剪枝算法可以分为:预剪枝和后剪枝

预剪枝

预剪枝就是在决策树生成过程中,在每次划分时,考虑是否能够带来决策树性能的提升。

如果可以提升决策树的性能则会进行划分。如果不能则会停止生长。

一般的方法有如下几种:

当树的深度达到一定的规模,则停止生长。达到当前节点的样本数量小于某个阈值的时候。计算每次分裂对测试集的准确性提升,当小于某个阈值,或不再提升甚至有所下降时,停止生长。当信息增益,增益率和基尼指数增益小于某个阈值的时候不在生长。

优缺点

优点:思想简单,算法高效,采用了贪心的思想,适合大规模问题。
缺点:提前停止生长,有可能存在欠拟合的风险。

后剪枝

后剪枝是先从训练集生成一颗完整的决策树,然后自底向上的对决策树进行剪枝,与预剪枝最大的不同就是:
决策树是否生长完整。

决策树的生成是学习局部的模型,后剪枝则是学习整体的模型。

后剪枝算法的分类

错误率降低剪枝(REP)悲观剪枝(PEP)代价复杂度剪枝(CCP)最小误差剪枝(MEP)CVP (Critical Value Pruning)OPP (Optimal Pruning)

本文以西瓜书为例,错误率降低剪枝(REP)。

将数据分为训练集和测试集,用训练集去生成一颗完整的决策树,用测试集去剪枝。

该算法将树上的每个节点都作为剪枝的候选对象,通过如下步骤进行剪枝操作:
step1:删除以此节点为根节点的树,
step2:使其成为叶子结点,赋予该节点最常见的分类
step3:对比删除前和删除后的性能是否有所提升,如果有则进行删除,没有则保留。

优缺点

优点:可以最大限度的保留树的各个节点,避免了欠拟合的风险。
缺点:相较于预剪枝的时间开销巨大。

奥卡姆剃刀定律

奥卡姆剃刀是一种思想,在效果相同,性能一致的情况下,模型越简单越好。在简直过程中,若复杂的决策树和简答的决策树的性能相同则优先选择结构简单的决策树。

预告andTODO

1.决策树的连续与缺失值的处理
2.Bagging——随机森林
3.Boosting——Adamboost,GBDT,Xgboost

Reference

[1] 《机器学习》 p79-p83
[2] 《百面机器学习》p67-p68
[3] https://www.cnblogs.com/starfire86/p/5749334.html

相关知识

决策树算法简介
9.决策树
分类算法3:决策树及R语言实现
实验——基于决策树算法完成鸢尾花卉品种预测任务
【机器学习小实验5】基于决策树和随机森林的鸢尾花种类预测
小白带你入门——sklearn实现决策树分类的步骤
Python:以鸢尾花数据为例,介绍决策树算法
决策树分类器(保姆级教学) 定义+特性+原理及公式+鸢尾花分类经典问题示例(完整Python代码带详细注释、保姆级分部代码解释及结果说明、决策树可视化及解释)
头歌——人工智能(机器学习
python利用c4.5决策树对鸢尾花卉数据集进行分类(iris)

网址: 决策树(二)——决策树的剪枝(预剪枝和后剪枝) https://www.huajiangbk.com/newsview1408147.html

所属分类:花卉
上一篇: 剪枝策略与算法优化:搜索树的高效
下一篇: ## 论文学习—用一个可接受的的

推荐分享