剪枝(pruning)
是一种可以提高算法时间和空间效率的技巧,经过剪枝的算法在执行效率上远超一般未经剪枝的算法。有些算法甚至可以通过剪枝优化降低计算的时间复杂度等级,突破应用瓶颈。
剪枝算法主要分为三类
可行性剪枝
如当前状态和问题要求不符,并且可以推出从该状态往后的演变都不满足要求,那么就可以进行剪枝——该状态的搜索终止
排除等效冗余
当某几个枝桠可以证明具有完全相同的效果时,只选择其中一个,其他
剪枝
(pruning)是
决策树
学习算法对付“过拟合”的主要手段。
决策树
剪枝
的基本策略有“
预
剪枝
”(prepruning)和“后
剪枝
”(postpruning)。
预
剪枝
是指在
决策树
生成过程中,对每个结点在划分前先进行估计,若当前结点得划分不能带来
决策树
泛化性能提升,则停止划分并将当前结点标记为叶结点
后
剪枝
则是先从训练集生成一棵完整的
决策树
,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来
决策树
泛化性能提升,则将该子树替换为叶结点。
文章目录一、
决策树
模型二、选择划分2.1 信息熵和信息增益2.2 增益率2.3 基尼指数三、
剪枝
3.1
预
剪枝
3.2 后
剪枝
3.3
剪枝
示例3.4
预
剪枝
和后
剪枝
对比四、
Python
实现
一、
决策树
模型
决策树
(Decision Tree)是一种常见的
机器学习
算法,而其核心便是“分而治之”的划分策略。例如,以西瓜为例,需要判断一个西瓜是否是一个好瓜,那么就可以根据经验考虑“西瓜是什么颜色?”,...
1. 为什么要
剪枝
还记得
决策树
的构造过程吗?为了尽可能正确分类训练样本,节点的划分过程会不断重复直到不能再分,这样就可能对训练样本学习的“太好”了,把训练样本的一些特点当做所有数据都具有的一般性质,从而导致过拟合。这时就可以通过
剪枝
处理去掉一些分支来降低过拟合的风险。
剪枝
的基本策略有“
预
剪枝
”(prepruning)和“后
剪枝
”(post-pruning):
预
剪枝
是在
决策树
的生成过程中...
决策树
剪枝
算法1、算法目的2、算法基本思路:3、
决策树
损失函数4、
剪枝
类型:4.1
预
剪枝
4.2 后
剪枝
4.3 两种
剪枝
策略对比
1、算法目的
决策树
的
剪枝
是为了简化
决策树
模型,避免过拟合。
同样层数的
决策树
,叶结点的个数越多就越复杂;同样的叶结点个数的
决策树
,层数越多越复杂。
剪枝
前相比于
剪枝
后,叶结点个数和层数只能更多或者其中一特征一样多,
剪枝
前必然更复杂。
层数越多,叶结点越多,分的越细致,对训练数据分的也越深,越容易过拟合,导致对测试数据
预
测时反而效果差,泛化能力差。
2、算法基本思路: