C4.5 树剪枝

转自:http://www.cnblogs.com/superhuake/archive/2012/07/25/2609124.html

树剪枝

    在决策树的创建时,由于数据中的噪声和离群点,许多分枝反映的是训练数据中的异常。剪枝方法是用来处理这种过分拟合数据的问题。通常剪枝方法都是使用统计度量,剪去最不可靠的分枝。

    剪枝一般分两种方法:先剪枝和后剪枝。

    先剪枝方法中通过提前停止树的构造(比如决定在某个节点不再分裂或划分训练元组的子集)而对树剪枝。一旦停止,这个节点就变成树叶,该树叶可能取它持有的子集最频繁的类作为自己的类。先剪枝有很多方法,比如(1)当决策树达到一定的高度就停止决策树的生长;(2)到达此节点的实例具有相同的特征向量,而不必一定属于同一类,也可以停止生长(3)到达此节点的实例个数小于某个阈值的时候也可以停止树的生长,不足之处是不能处理那些数据量比较小的特殊情况(4)计算每次扩展对系统性能的增益,如果小于某个阈值就可以让它停止生长。先剪枝有个缺点就是视野效果问题,也就是说在相同的标准下,也许当前扩展不能满足要求,但更进一步扩展又能满足要求。这样会过早停止决策树的生长。

    另一种更常用的方法是后剪枝,它由完全成长的树剪去子树而形成。通过删除节点的分枝并用树叶来替换它。树叶一般用子树中最频繁的类别来标记。

    C4.5采用悲观剪枝法,它使用训练集生成决策树又用它来进行剪枝,不需要独立的剪枝集。

    悲观剪枝法的基本思路是:设训练集生成的决策树是T,用T来分类训练集中的N的元组,设K为到达某个叶子节点的元组个数,其中分类错误地个数为J。由于树T是由训练集生成的,是适合训练集的,因此J/K不能可信地估计错误率。所以用(J+0.5)/K来表示。设S为T的子树,其叶节点个数为L(s),image 为到达此子树的叶节点的元组个数总和,image 为此子树中被错误分类的元组个数之和。在分类新的元组时,则其错误分类个数为image ,其标准错误表示为:image  。当用此树分类训练集时,设E为分类错误个数,当下面的式子成立时,则删掉子树S,用叶节点代替,且S的子树不必再计算。

        image 。

### C4.5决策算法的剪枝方法 C4.5决策是一种改进版的决策算法,相较于ID3算法,其主要优势在于能够处理连续属性以及缺失值的情况[^1]。然而,在构建决策的过程中,可能会因为过拟合而导致模型性能下降。因此,C4.5引入了两种常见的剪枝策略:**预剪枝(Pre-pruning)** 和 **后剪枝(Post-pruning)**。 #### 预剪枝(Pre-pruning) 预剪枝通过提前停止的增长来减少过拟合的风险。具体来说,当某个节点满足特定条件时,不再继续划分该节点下的子节点,而是将其标记为叶节点。这些条件可能包括但不限于: - 当前节点的信息增益低于某一阈值。 - 节点中的样本数量小于设定的最小分割大小。 - 达到最大深限制。 这种方法的优点是可以显著降低计算复杂度并提高泛化能力;缺点则是可能导致欠拟合,即某些潜在有用的分支被过早舍弃。 #### 后剪枝(Post-pruning) 相比预剪枝,后剪枝先允许完全生长至最底层,然后再自底向上地评估各个内部节点是否应该替换为其多数类标签作为叶子节点。这种技术通常基于统计检验或其他启发式规则来进行判断。例如,如果将某子替换成单一叶子不会使预测误差明显增加,则执行此操作。 一种具体的实现方式如下所示: ```python def prune_tree(node, validation_set): if not node.is_leaf(): # 对当前节点的所有孩子递归调用prune_tree函数 for child in node.children: prune_tree(child, validation_set) # 如果移除这棵子能提升验证集上的表现则进行简化 original_error = calculate_error(validation_set, node) pruned_node = convert_to_leaf(node) pruned_error = calculate_error(validation_set, pruned_node) if pruned_error <= original_error: replace_with_leaf(node, pruned_node) ``` 上述代码片段展示了如何利用验证集合对一棵已建成的决策实施后剪枝过程[^2]。其中`calculate_error()`用于衡量错误率变化情况,而`convert_to_leaf()`负责创建一个新的叶节点替代原有复杂的结构。 值得注意的是,无论是哪种类型的剪枝机制都需要仔细调整参数以找到最佳平衡点——既要防止过度修剪也要避免不足修剪。 ### 总结 综上所述,C4.5不仅优化了传统ID3无法有效应对混合型特征空间的问题,还提供了灵活多样的剪枝手段来增强实际应用效果。特别是借助信息增益比率代替原始信息增益指标的选择标准进一步提升了鲁棒性和公平性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值