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

目录

预剪枝

后剪枝

处理连续值

处理缺失值


剪枝(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博客

相关推荐
回眸&啤酒鸭3 天前
【回眸】Minicart 电商购物车核心功能落地指南
人工智能
一隅论数智3 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
AI的探索之旅3 天前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
AlbertZein3 天前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
LaughingZhu3 天前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
美狐美颜SDK开放平台3 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
wukangjupingbb3 天前
智能网联汽车安全能力框架
人工智能
龙亘川3 天前
明月照湾区,智启新赛道:从顶流文旅IP盛会看智慧文旅升级路径
人工智能·智慧城市·开源软件·数据可视化
飞猫的边缘AI3 天前
边缘AI应用:家用AI摄像头怎么做数据训练?
人工智能·边缘计算·ai算法·边缘ai