【西瓜书】剪枝与样本值处理——预剪枝、后剪枝、连续值、缺失值

目录

预剪枝

后剪枝

处理连续值

处理缺失值


剪枝(pruning)是决策树学习算法对付"过拟合"的主要手段。

  • 在决策树学习过程中,有时会造成决策树分枝过多,就可能造成过拟合,可通过主动去掉一些分支来降低过离合的风险。
  • 决策树剪枝的基本策略有"预剪枝"(prepruning)和"后剪枝"(postpruning)。

预剪枝

  • 预剪枝是指在决策树的生成过程中,对每个节点在划分前先进行估计,若当前节点的划分不能带来决策数泛化性能提升,则停止划分,并将当前节点标记为叶节点。
  • 后剪枝是先从训练集生成一颗完整的决策树,然后自底向上的对非叶节点进行考察,若将该节点对应的子树替换为叶节点,能带来决策树泛化性能提升,则将该子树替换为叶节点。
  • 那么如何判断决策树的泛化性能提升呢?可以使用验证集进行验证。
  • 一颗仅有一层划分的决策树,称为"决策树桩"(decision stumb)。
  • 预剪枝使得决策树的很多分支都不进行展开,这既降低了过拟合的风险,又显著减少了决策树的训练时间开销和测试时间开销。
  • 另一方面,有些分支的当前划分虽不能提升泛化性能,甚至可能导致泛化性能暂时下降,但是在其基础进行的后续划分却有可能导致性能显著提高。这给预剪枝决策树带来了欠拟合的风险。
  • 预剪枝的本质是一种"贪心"算法。

后剪枝

  • 后剪枝决策树通常比预减值决策树保留了更多的分支,一般情况下后剪纸决策树的欠拟合风险很小,泛化性能往往优于预剪纸的决策树。
  • 后剪枝的训练时间开销比未剪枝决策树和预剪枝决策树都要大很多。

处理连续值

  • 在处理分类时都是基于离散属性来生成决策树,使用离散值进行分类也比较符合人们的思维习惯。
  • 如果输入样本的属性是连续值,就需要用到连续属性离散化的技术。
  • 二分法(bi-partition)对连续属性进行处理的最简单的策略。这也是 C4.5决策树 算法中采用的机制。
  • 与离散属性不同,若当前节点划分属性为连续属性,该属性还可作为其后代节点的划分属性(离散属性在决策树上只出现一次)。

处理缺失值

  • 现实任务中常会遇到不完整样本,即样本的某些属性值缺失。

  • 如果在属性值缺失的时候丢弃该样本,则会造成样本变得很小,因此有必要考虑利用缺失属性值的训练样例来进行学习。

  • 缺失值的处理需要解决两个问题:

    • 问题1:如何在属性值缺失的情况下进行划分属性选择。
    • 问题2:给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分。
  • 对于问题1:按照属性来,

    • 令D~表示D中在属性a上没有缺失值的样本,
    • 定义ρ为无缺失值的样本比例,
    • 定义pk~为无缺失值样本中第k类所占的比例,
    • 定义rv~为无缺失值样本中在属性a上取值为a^v的样本所占的比例;
    • 则信息增益为:
    • 其中
  • 对于问题2:按照概率来,

    • 若样本x在划分属性a上的取值已知,则将x划入与其取值对应的子节点,且样本全值在子节点中保持为

    • 若样本x在划分属性a上的取值未知,则将x同时划入所有的子节点,且样本权值与属性值对应的子节点中调整为。也就是说,让同一个样本以不同的概率划入到不同的子节点中去。

  • C4.5算法中使用了上述解决方案。

【西瓜书】决策树-CSDN博客

相关推荐
想要成为计算机高手1 小时前
11. isaacsim4.2教程-Transform 树与Odometry
人工智能·机器人·自动驾驶·ros·rviz·isaac sim·仿真环境
NeoFii1 小时前
Day 22: 复习
机器学习
静心问道1 小时前
InstructBLIP:通过指令微调迈向通用视觉-语言模型
人工智能·多模态·ai技术应用
宇称不守恒4.02 小时前
2025暑期—06神经网络-常见网络2
网络·人工智能·神经网络
小楓12012 小时前
醫護行業在未來會被AI淘汰嗎?
人工智能·醫療·護理·職業
数据与人工智能律师3 小时前
数字迷雾中的安全锚点:解码匿名化与假名化的法律边界与商业价值
大数据·网络·人工智能·云计算·区块链
chenchihwen3 小时前
大模型应用班-第2课 DeepSeek使用与提示词工程课程重点 学习ollama 安装 用deepseek-r1:1.5b 分析PDF 内容
人工智能·学习
说私域3 小时前
公域流量向私域流量转化策略研究——基于开源AI智能客服、AI智能名片与S2B2C商城小程序的融合应用
人工智能·小程序
Java樱木3 小时前
AI 编程工具 Trae 重要的升级。。。
人工智能
凪卄12133 小时前
图像预处理 二
人工智能·python·深度学习·计算机视觉·pycharm