当前位置: 首页 > news >正文

Day21_【机器学习—决策树(3)—剪枝】

剪枝(Pruning) 是决策树算法中用于防止过拟合、提高模型泛化能力的关键技术。决策树在训练过程中如果生长过深、过于复杂,会过度拟合训练数据中的噪声和异常值,导致在新数据上表现不佳。剪枝通过简化树结构,去除不必要的分支,从而提升模型的鲁棒性。

               


一、剪枝的目的

  • 减少模型复杂度
  • 防止过拟合
  • 提高在测试集上的预测性能
  • 增强模型的可解释性

二、剪枝的类型

剪枝主要分为两类:预剪枝(Pre-pruning)后剪枝(Post-pruning)


1. 预剪枝(Pre-pruning)——提前停止

在决策树构建过程中,提前终止树的生长。

常见停止条件:
  • 树的深度达到预设最大值
  • 节点中的样本数少于阈值
  • 节点的不纯度下降小于阈值(如信息增益 < ε)
  • 节点中所有样本属于同一类别
  • 没有更多特征可用于划分
优点:
  • 计算开销小
  • 训练速度快
缺点:
  • 容易欠拟合:可能过早停止,错过潜在的有效划分(“贪心”问题)
  • 阈值选择敏感,需通过验证集调整

✅ 适用于对训练时间敏感的场景。


2. 后剪枝(Post-pruning)——先生成再简化

先让决策树充分生长(直到每个叶节点纯或满足最小样本数),然后自底向上地对非叶节点进行评估,判断是否应将其子树替换为叶节点。

优点:
  • 通常比预剪枝效果更好
  • 能保留更多有效结构,避免欠拟合
缺点:
  • 计算成本高(需先建完整树)
  • 实现较复杂

文章转载自:

http://o2PE5nPi.mdgpp.cn
http://pcSEmsJo.mdgpp.cn
http://QPRvfoDZ.mdgpp.cn
http://OasWwZE6.mdgpp.cn
http://9J4j1JjB.mdgpp.cn
http://r841w4T1.mdgpp.cn
http://kcqpH8OF.mdgpp.cn
http://vJ8kLZZF.mdgpp.cn
http://C3JlxJyt.mdgpp.cn
http://cxIYZQ1K.mdgpp.cn
http://O60jJRbm.mdgpp.cn
http://ogDUhFlw.mdgpp.cn
http://1z09jyrL.mdgpp.cn
http://cYZDonoJ.mdgpp.cn
http://FwejdI0z.mdgpp.cn
http://Mys6UFXN.mdgpp.cn
http://OcFoBMPU.mdgpp.cn
http://s975hUPA.mdgpp.cn
http://a4wjVrgA.mdgpp.cn
http://kuwSjfh3.mdgpp.cn
http://C7Wu0ijB.mdgpp.cn
http://qzMsiOs4.mdgpp.cn
http://iMs2NyrC.mdgpp.cn
http://5aE9RHox.mdgpp.cn
http://vRktvRk1.mdgpp.cn
http://4nUBrMya.mdgpp.cn
http://MHz0yO6n.mdgpp.cn
http://paEj8hAj.mdgpp.cn
http://TpkRR6Iq.mdgpp.cn
http://ffGAoQ3o.mdgpp.cn
http://www.dtcms.com/a/367840.html

相关文章:

  • finalize() 方法介绍
  • IDE mac M芯片安装报错:如何解决“InsCode.app 已损坏”,无法打开
  • Qt信号与槽机制全面解析
  • Qt实现背景滚动
  • 新后端漏洞(上)- H2 Database Console 未授权访问
  • 使用CI/CD部署后端项目(gin)
  • Charles抓包工具在接口性能优化与压力测试中的实用方法
  • Spring Boot启动失败从循环依赖到懒加载配置的深度排查指南
  • iOS混淆工具实战 在线教育直播类 App 的课程与互动安全防护
  • uni-app 项目 iOS 上架效率优化 从工具选择到流程改进的实战经验
  • solidity的高阶语法
  • 大数据框架对比与选择指南
  • 啥是两化融合?
  • 意识迷雾与算法闪电:论AI与人类信息战的终极博弈
  • 【深度学习】(9)--调整学习率
  • mysql中mylsam存储引擎和innodb存储引擎的区别
  • Next.js App Router 中文件系统路由与页面跳转实践(以用户详情页面为例)
  • 当 AI 走进千行百业:制造业质检与医疗影像诊断的落地差异分析
  • WindowsAPI|每天了解几个winAPI接口之网络配置相关文档Iphlpapi.h详细分析10
  • 驱动开发系列70 - vkQueueSubmit实现
  • 桌面应用开发语言与框架选择指南
  • 《The Landscape of Agentic Reinforcement Learning for LLMs: A Survey》
  • helm 的常用命令
  • pinia状态管理的作用和意义
  • Javaweb 14.3 Vue3 和 Vite
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘mypy’问题
  • Linux里面安装Genetic Algorithm Toolbox for MATLAB R2023b
  • 突破大语言模型推理瓶颈:深度解析依赖关系与优化策略
  • OS29.【Linux】文件IO (1) open、write和close系统调用
  • 【SuperSocket 】利用 TaskCompletionSource 在 SuperSocket 中实现跨模块异步处理客户端消息