决策树后剪枝算法(四)最小错误剪枝MEP

article/2025/9/28 23:26:28


 ​​ ​决策树后剪枝算法(一)代价复杂度剪枝CPP
 ​​ ​决策树后剪枝算法(二)错误率降低剪枝REP
 ​​ ​决策树后剪枝算法(三)悲观错误剪枝PEP
 ​​ ​决策树后剪枝算法(四)最小错误剪枝MEP
 ​​ ​
​ ​ 剪枝,是一个“用准确性换取简单性”的思想。它允许决策树对训练集过拟合,再通过删除对泛化精度无贡献的子分支,从而修剪出一颗较小的树。以下列出几种较常见的后剪枝算法,及其机制对比:

CCPREPPEPMEP
剪枝方式自底向上自底向上自顶向下自底向上
计算复杂度 O ( n 2 ) O(n^2) O(n2) O ( n ) O(n) O(n) O ( n ) O(n) O(n) O ( n ) O(n) O(n)
误差估计标准误差剪枝集上误差连续性矫正概率估计
是否需要额外剪枝集

​ ​

(4)最小错误剪枝(MEP)

​ ​ 1986年Niblett和Bratko提出了最小错误剪枝。最小错误剪枝采用自底向上的方式对决策树进行剪枝,也是后剪枝的一种。最小错误剪枝的主要思想是通过分别计算剪枝前与后的期望错误率 E k E_k Ek,进行判断。

​ 

(4.1)数学推导

​ 评价标准:
E k = n − n c + k − 1 n + k E_k=\frac{n-n_c+k-1}{n+k} Ek=n+knnc+k1
​ 解读:

  • E k E_k Ek为期望错误率,为评价是否剪枝标准。

  • n n n为样本数, n c n_c nc为结点最多类别 c c c的样本数, k k k为决策树分类类别总数。

  • 该公式需假设每个类别概率相等。

​ ​ 要计算期望错误率,首先需引入错误率计算,反向思考则为计算 P c ( T ) P_c(T) Pc(T)(1 - 节点 T T T分类为某类别 c c c的概率),直观思考可得:
P r ( T ) = n c n P_r(T)=\frac{n_c}{n} Pr(T)=nnc
​ ​ 但这样做是有问题的,因为我们仍未知各个样本属于类别 c c c的概率,即贝叶斯思维中的先验概率。这便是我们的假设前提“每个类别概率相等”的作用,故有关于节点 T T T各样本是属于类别 c c c的先验概率为:
P r c ( T ) = 1 k Pr_{c}(T)=\frac{1}{k} Prc(T)=k1
​ ​ 故引出最终的后验概率,节点 T T T分类为某类别 c c c的概率:
P c ( T ) = n c + P r c ( T ) × m n + m ( 其中 m 为先验概率影响因子 ) P_c(T)=\frac{n_c+Pr_c(T)\times m}{n+m} (其中m为先验概率影响因子) Pc(T)=n+mnc+Prc(T)×m(其中m为先验概率影响因子)
​ ​ 因而求得节点 T T T分类为某类别 c c c的错误率:
E r r o r c ( T ) = 1 − P c ( T ) = n − n c + m ( 1 − P r c ( T ) ) n + m Error_c(T)=1-P_c(T)\\ =\frac{n-n_c+m(1-Pr_c(T))}{n+m} Errorc(T)=1Pc(T)=n+mnnc+m(1Prc(T))
​ ​ 因一个节点只能有一个类别,且判断方式常为多数表决,则节点 T T T的错误率和最大类别 c c c直接挂钩,可表示为:
E r r o r ( T ) = E r r o r c ( T ) Error(T)=Error_c(T) Error(T)=Errorc(T)
​ ​ 故期望错误率 E k E_k Ek则转换为,求一个恰当的影响因子 m m m的函数,其中一种思路为,求:
E k = min ⁡ { 1 − P c ( T ) } = = min ⁡ { n − n c + m ( 1 − P r c ( T ) ) n + m } E_k=\min\{1-P_c(T)\}==\min\{\frac{n-n_c+m(1-Pr_c(T))}{n+m}\} Ek=min{1Pc(T)}==min{n+mnnc+m(1Prc(T))}
​ ​ 即求解 m m m函数的最小值。

​ ​ 为简便计算,从规律进行总结,当 m = 0 m=0 m=0时,可考虑先验概率影响为0;而 m → ∞ m\rightarrow\infin m时,先验概率影响程度无穷大。则可近似将 m m m等价于类别总数 k k k,即类别总数为0,先验概率不予考虑;类别总数较大,先验概率至关重要。

​ ​ 故得到简化公式:
E k = n − n c + k − 1 n + k E_k=\frac{n-n_c+k-1}{n+k} Ek=n+knnc+k1

​ 

(4.2)算法流程

​ ​ 考虑决策树上每个中间节点作为剪枝候选对象,自底向上遍历,判断是否剪枝步骤如下:

  • (1)删除以此节点为根的子树,使其成为叶子结点。
  • (2)根据多数表决法,赋予该节点关联的训练数据类别。
  • (3)比较删除前后错误样本数,判断是否剪枝该节点。

​ 

(4.3)例题计算

​ ​ 下面举一个例子进行说明,下图待剪枝决策树有三个类别,每个节点类别及各分类样本数均如图矩形框中列出。


在这里插入图片描述
​ 
​ ​ 节点"node 27"
剪枝后: E k ( t ) = 20 − 15 + 3 − 1 20 + 3 = 0.304 剪枝前: E k ( T t ) = 17 20 × ( 17 − 15 + 3 − 1 17 + 3 ) + 3 20 × ( 3 − 3 + 3 − 1 3 + 3 ) = 0.220 注:剪枝前的计算过程为 T t 下叶子节点计算结果加权求和 剪枝后:E_k(t)=\frac{20-15+3-1}{20+3}=0.304\\ 剪枝前:E_k(T_t)=\frac{17}{20}\times(\frac{17-15+3-1}{17+3})+\frac{3}{20}\times(\frac{3-3+3-1}{3+3})=0.220\\ 注:剪枝前的计算过程为T_t下叶子节点计算结果加权求和 剪枝后:Ek(t)=20+32015+31=0.304剪枝前:Ek(Tt)=2017×(17+31715+31)+203×(3+333+31)=0.220注:剪枝前的计算过程为Tt下叶子节点计算结果加权求和
​ ​ 可得剪枝后期望错误率增加,故不可剪枝。

​ 

​ ​ 节点"node 26"

​ ​ 节点"node 26"的计算结果也是不可剪枝,请自行验证。(0.447 / 0.370)

​ 

(4.4)代码实现

​ C4.5算法及MEP剪枝手写实现

链接:https://pan.baidu.com/s/1JcwHWn7uAzYdahAV6e2GJw?pwd=94bm 
提取码:94bm

​ 代码参考:http://www.hzcourse.com/web/refbook/detail/9970/226

————————————————————————————————————————————————————————————

​ 参考资料:

​ [1] 现代决策树模型及其编程实践 黄智濒 编著

​ [2] https://www.bilibili.com/video/BV1No4y1o7ac?p=48


http://chatgpt.dhexx.cn/article/DIDWkP6T.shtml

相关文章

计算机博弈 基础算法 阿尔法-贝塔剪枝算法 α-β剪枝算法

计算机博弈大赛中 α-β剪枝算法剪枝算法是极大极小算法的一种优化,可以更快的搜索博弈树 预备知识: 广度优先搜索(BFS) 深度优先搜索(DFS) 极大极小算法(MaxMin算法) 介绍 剪枝算法来源于极大极小算法,在博弈树分枝过多时可以使用这个方法…

卷积神经网络通道剪枝算法小结

一、剪枝分类 目前常见的模型剪枝算法主要分成两类,即非结构化剪枝与结构化剪枝;在不少的神经网络加速器中已经应用了这些剪枝算法,早期常见的是非结构化剪枝,例如MIT的韩松组的前几年的相关工作中就有此类应用,但是在…

最大最小法及α-β剪枝算法图解

(网上讲的都不是很好理解,贡献一下之前听慕课做的笔记,适合初学者比较简洁明了。) 要想理解α-β剪枝算法,必须从最大最小法的博弈问题讲起!注意不懂的同学不要跳过这一节。 最大最小法 场景:…

剪枝算法实现一字棋-C++

博弈树 alpha & beta剪枝算法实现一字棋 剪枝算法首先就是要理解,把这个算法彻底弄清楚,我觉得这是一件非常有意义的事情!为后续书写其它棋类的AI打下了坚实的基础 剪枝操作的实现,遍历下一步所有可能取到的点,…

模型压缩:剪枝算法

过参数化主要是指在训练阶段,在数学上需要进行大量的微分求解,去捕抓数据中的微小变化信息,一旦完成迭代式的训练之后,网络模型推理的时候就不需要这么多参数。而剪枝算法正是基于过参数化的理论基础而提出的。 剪枝算法核心思想…

人工智能算法模型--Alpha-Beta剪枝算法学习笔记

⬜⬜⬜ 🐰🟧🟨🟩🟦🟪 (*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu &a…

理解Alpha-Beta 剪枝算法

Alpha-beta剪枝是一种搜索算法,用以减少极小化极大算法(Minimax算法)搜索树的节点数。裁剪搜索树中没有意义的不需要搜索的树枝,提高运算速度。 搜索中传递两个值。 第一个值是Alpha,即搜索到的最好值,任何…

组合总和(剪枝算法)

组合总和(剪枝算法) 题目 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取 示例 示例 1:输入: candidates [2,…

Alpha-Beta剪枝算法原理

1. 前言 前文:极小化极大(Minimax)算法原理 极小化极大算法在完全信息零和博弈中,基于己方努力使得在N步后优势最大化(即评估函数输出值最大化)和对方努力使得N步后己方优势最小化这两个出发点&#xff0c…

GRNN广义回归神经网络

广义回归神经网络 GRNN (General Regression Neural Network) 广义回归神经网络是基于径向基函数神经网络的一种改进。 结构分析: 可以看出,这个结构与之前我们所讲过的径向基神经网络非常相似,区别就在于多了一层加和…

m分别使用BP神经网络和GRNN网络进行时间序列预测matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 广义回归神经网络是径向基神经网络的一种,GRNN具有很强的非线性映射能力和学习速度,比RBF具有更强的优势,网络最后普收敛于样本量集聚较多的优化回归&#xff…

广义回归神经网络(GRNN)

广义回归神经网络(GRNN) 一、GRNN神经网络概述 二、GRNN神经网络理论基础(如果对理论不感兴趣可直接看GRNN网络结构,网络结构理解更直观) 三、GRNN的网络结构 注意:一定要理解第三个求和层的概念&#xff0…

【GRNN情绪识别】基于GRNN神经网络的情绪识别算法matlab仿真

1.软件版本 matlab2021a 2.本算法理论知识 GRNN,即General Regression Neural Network,中文全称为广义回归神经网络,是由The Lockheed Palo Alto研究实验室在1991年提出的。GRNN是一种新型的基于非线性回归理论的神经网络模型[43,44]。GRN…

m基于C3D-hog-GRNN广义回归神经网络模型的人员异常行为识别算法的matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 实时的人群异常行为识别是一项极具挑战的工作,具有较高的现实意义和社会需求,快速准确地判断出异常行为并及时预警,一直是我们探索的方向。传统的机器学习算法…

基于BP神经网络/GRNN神经网络的电力预测matlab仿真

目录 一、理论基础 二、案例背景 三、MATLAB程序 四、仿真结论分析 一、理论基础 BP神经网络,即Back Propagation神经网络,其本质是一种基于误差反馈传播的神经网络算法。从结构上讲,BP神经网络是由一个信息的正向传播网络和一个误差的反…

RNN CNN GCN

RNN CNN GCN 属于深度学习领域——图像识别 主要用于识别提取图像的特征 CNN:对象是图片,一个二维结构,其主要核心是有一个kernel小窗口,用于图片的平移,然后再利用卷积来提取图片的特征。 RNN:针对一维结构,主要利用…

基于麻雀搜索算法优化的广义回归神经网络(GRNN)预测 -附代码

基于麻雀搜索算法优化的广义回归神经网络(GRNN)预测 文章目录 基于麻雀搜索算法优化的广义回归神经网络(GRNN)预测1.GRNN 神经网络概述2.GRNN 的网络结构3.GRNN的理论基础4.运输系统货运量预测相关背景5.模型建立6.麻雀搜索算法优化GRNN7.实验结果8.参考文献9.Matlab代码 摘要&…

广义回归神经网络(GRNN)的数据预测

广义回归神经网络是径向基神经网络的一种,GRNN具有很强的非线性映射能力和学习速度,比RBF具有更强的优势,网络最后普收敛于样本量集聚较多的优化回归,样本数据少时,预测效果很好, 网络还可以处理不稳定数…

神经网络(一):GRNN广义回归神经网络理论概念笔记

GRNN广义回归神经网络以及相关概念 https://blog.csdn.net/zengxiantao1994/article/details/72787849 https://blog.csdn.net/guoyunlei/article/details/76101899参考博客 小小白入坑系列,欢迎大佬的指教! 算法网上铺天盖地的,我只是把自己对算法的理…

【GRNN回归预测】基于matlab有限增量进化广义回归神经网络LIEV-GRNN数据回归预测【含Matlab源码 2132期】

⛄一、GRNN模型 GRNN是一种非线性回归的前馈式神经网络。通常是由输入层、模式层、求和层和输出层构成。GRNN算法在运算速度与学习能力上比径向基函数神经网络(radial basis function, RBF)、反向传播神经网络(back propagation, BP)更强,广泛应用于系统辨识、预测…