决策树是一个树结构(可以是二叉树或非二叉树),其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个输出类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。

决策树学习通常包含这几个方面:特征选择、决策树生成、决策树剪枝、缺失值/异常值处理、决策树集成学习。

决策树-特征属性选择划分

决策树-缺失值和连续值处理及属性划分

决策树-不同的决策树模型对比

决策树-避免过拟合预剪枝和后剪枝对比区别

决策树-算法小结及常见问题


到目前为止我们仅讨论了基于离散属性来生成决策树,现实学习任务中常常遇到连续属性,以及数据中缺失问题。

目录

连续值处理

缺失值处理


连续值处理

基本思路:连续属性离散化,常见做法:二分法(这是C4.5决策树算法中采用的机制)。

对于连续属性a,我们可考察包括 n-1 个元素的候选划分集合(个属性值可形成 n-1 个候选点):

示例1:

示例2:

对于数据集中的属性“密度”,决策树开始学习时,根节点包含的17个训练样本在该属性上取值均不同。我们先把“密度”这些值从小到大排序:

根据上面计算 的公式,可得:

下面开始计算t 取不同值时的信息增益:

有一点需要注意的是 :与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性。**如下图所示的一颗决策树,“含糖率”这个属性在根节点用了一次,后代结点也用了一次,只是两次划分点取值不同。

缺失值处理

现实生活中的数据集中的样本通常在某系属性上是缺失的,如果属性值缺失的样本数量比较少,我们可以直接简单粗暴的把不完备的样本删除掉,但是如果有大量的样本都有属性值的缺失,那么就不能简单地删除,因为这样删除了大量的样本,对于机器学习模型而言损失了大量有用的信息,训练出来的模型性能会受到影响。

在决策树中处理含有缺失值的样本的时候,需要解决两个问题:

  • 如何在属性值缺失的情况下进行划分属性的选择?(比如“色泽”这个属性有的样本在该属性上的值是缺失的,那么该如何计算“色泽”的信息增益?)
  • 给定划分属性,若样本在该属性上的值是缺失的,那么该如何对这个样本进行划分?(即到底把这个样本划分到哪个结点里?)

示例1:

比较发现,“纹理”在所有属性中的信息增益值最大,因此,“纹理”被选为划分属性,用于对根节点进行划分。划分结果为:“纹理=稍糊”分支:{7,9,13,14,17},“纹理=清晰”分支:{1,2,3,4,5,6,15},“纹理=模糊”分支:{11,12,16}。如下图所示:

那么问题来了,编号为{8,10}的样本在“纹理”这个属性上是缺失的,该被划分到哪个分支里?前面讲过了,这两个样本会同时进入到三个分支里,只不过进入到每个分支后权重会被调整(前面也说过,在刚开始时每个样本的权重都初始化为1)。编号为8的样本进入到三个分支里后,权重分别调整为5/15,7/15 和 3/15;编号为10的样本同样的操作和权重。因此,经过第一次划分后的决策树如下图所示:

我们都知道构造决策树的过程是一个递归过程,原来不打算继续介绍递归过程了,但是因为权重发生了变化,所以继续介绍下递归过程。接下来,递归执行“纹理=稍糊”这个分支,样本集D = {7,8,9,10,13,14,17},共7个样本。如下图所示:

下面来看具体的计算过程:

对比能够发现属性“敲声”的星系增益值最大,因此选择“敲声”作为划分属性,划分后的决策树如下图所示:

接下来对分支{敲声 = 沉闷}即结点{9,14,17}进行划分,根据博客决策树(一)介绍的三种递归返回情形,结点{9,14,17}因为包含的样本全部属于同一类别,因此无需划分,直接把结点{9,14,17}标记为叶结点,如下图所示:

根据递归过程,接下来对分支“敲声 = 浊响”即结点{7,8,13}进行划分,计算过程和上面一样,虽然我也算过了,但是不再贴出来了,需要注意的是样本的权重是1/3。计算完比较能够知道属性“脐部”的信息增益值最大,因此选择“脐部”作为划分属性,划分完的决策树如下图所示:

接下来,继续,对于结点{13},因为就一个样本了,直接把该结点标记为叶结点,类别为“坏瓜”;递归到结点{7,8},因为样本类别相同,所以也标记为叶结点,类别为“好瓜”;递归到结点“脐部=平坦”,因为这个结点不包含任何样本为空集,因此,把该结点标记为叶结点,类别设置为父节点中多数类的类别,即为“好瓜”。因此“纹理=稍糊”这颗子树构造完毕,如下图所示:

接下来,只需递归的重复上述过程即可,即能训练出一颗完整的决策树,最终的决策树如下图所示(该图片来自西瓜书):

参考链接:https://www.imooc.com/article/257743
参考链接:https://blog.csdn.net/leaf_zizi/article/details/83503167
参考链接:https://www.cnblogs.com/lsm-boke/p/12260343.html
参考链接:https://blog.csdn.net/qq_35649945/article/details/96633602

决策树-缺失值和连续值处理及属性划分相关推荐

  1. 机器学习 | 决策树原理剪枝连续值缺失值处理

    机器学习 | 决策树 最近学习了西瓜书决策树一章,简单整理了笔记,后续会继续补充给 文章目录 机器学习 | 决策树 一.基本信息论 1. 信息量 2. 信息熵 二.决策树常用算法 1.ID3 2.C4 ...

  2. 机器学习:决策树-基础算法,剪枝,连续值缺失值处理,多变量决策树(附代码实现)

     我的小程序: 待办计划:卷起来吧,少年! 我们记账:年薪50w够花么? 基础算法 举个栗子: 当一个有经验的老农看一个瓜是不是好瓜时,他可能会先看下瓜的颜色,一看是青绿的,心想有可能是好瓜!接着他又 ...

  3. 决策树-离散连续值如何构造决策树

    决策树的详细说明:https://blog.csdn.net/suipingsp/article/details/41927247 什么是决策树: 决策树是通过一系列规则对数据进行分类的过程.它提供一 ...

  4. 决策树之C4.5实现(离散属性与连续,属性并存)

    这两天自己实现了一个C4.5的决策树,用的是UCI上的一个数据集abalone.data 具体数据如下(前5条): M,0.455,0.365,0.095,0.514,0.2245,0.101,0.1 ...

  5. pandas用众数填充缺失值_【机器学习】scikit-learn中的数据预处理小结(归一化、缺失值填充、离散特征编码、连续值分箱)...

    一.概述 1. 数据预处理 数据预处理是从数据中检测,修改或删除不准确或不适用于模型的记录的过程 可能面对的问题有:数据类型不同,比如有的是文字,有的是数字,有的含时间序列,有的连续,有的间断. 也可 ...

  6. ID3决策树中连续值的处理+周志华《機器學習》图4.8和图4.10绘制

    转载自 https://blog.csdn.net/Leafage_M/article/details/80137305 用一句话总结这篇博客的内容就是: 对于当前n条数据,相邻求平均值,得到n-1个 ...

  7. 决策树缺失值python_【机器学习笔记之二】决策树的python实现

    本文结构: 是什么? 有什么算法? 数学原理? 编码实现算法? 1. 是什么? 简单地理解,就是根据一些 feature 进行分类,每个节点提一个问题,通过判断,将数据分为几类,再继续提问.这些问题是 ...

  8. 贝叶斯方法与连续值离散化

    https://www.toutiao.com/a6701998782122295819/ 奇技指南 实际算法工作中,需要经常处理特征值为连续值,而目标变量为可数属性的情况.这时, 将特征变量进行离散 ...

  9. Pandas数据分析17——pandas数据清洗(缺失值、重复值处理)

    参考书目:<深入浅出Pandas:利用Python进行数据处理与分析> pandas对大数据有很多便捷的清洗用法,尤其针对缺失值和重复值.缺失值就不用说了,会影响计算,重复值有时候可能并未 ...

最新文章

  1. python 面向对象(云储存一下)
  2. Java基本类型和取值范围
  3. GIS开源程序收集(转载)
  4. java 计算26个字母在一段文本中出现的频率(保留小数点后4位)
  5. ORACLE startup报错之ORA-01154ORA-01155ORA-01033ORA-03113
  6. python程序员工资-均薪3万?Python程序员就业各岗位薪资一览,你拖后腿了吗?...
  7. 什么是分布式微服务架构?-开课吧
  8. [ 原创 ]2017年3月25日
  9. Ubuntu20.04安装 Redis 并配置 phpRedisAdmin
  10. 【codeforces 709C】Letters Cyclic Shift
  11. poj 1011 - sticks - dfs + 剪枝
  12. 【车牌识别】基于matlab GUI模板匹配车牌库识别【含Matlab源码 416期】
  13. Papervision3d QuadTree四叉树相机的示例
  14. 航空系统c语言课程设计报告,c语言课程设计报告_航空订票系统西安郵電學院.doc...
  15. GO PDF资源 汇总!
  16. 惠普服务器u盘启动找不到硬盘,U盘启动找不到硬盘怎么回事?
  17. DREAMWEAVERCS6ANDPHP动态网页设计pdf
  18. tar cvf xvf zcvf zxvf
  19. 防止按钮在短时间内被多次点击多次触发事件
  20. cesium实现鹰眼地图(三维)效果

热门文章

  1. 【Java】生成UUID
  2. 利用My97DatePicker实现年份多选
  3. Java 动态代理机制分析及扩展
  4. cmd MySQL登录
  5. overload和override的区别
  6. 聊聊大厂面试官必问的 MySQL 锁机制
  7. Java虚拟机的Heap监狱
  8. Java集合:List转数组互转
  9. 行为型模式:责任链模式
  10. JVM:常用调优命令