决策树

本文详细介绍了决策树的构造过程,包括其优点、缺点和适用数据类型。重点讲解了信息增益的概念,它是衡量数据集无序程度并选择最佳划分特征的依据。文章通过递归构建决策树的原理,阐述了如何从原始数据集逐步形成决策树,并讨论了绘制决策树的技巧。同时,提到了过度匹配问题及解决方案,以及与其他决策树算法如C4.5和CART的区别。
摘要由CSDN通过智能技术生成

一.决策树的构造
决策树 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特 征数据。 缺点:可能会产生过度匹配问题。 适用数据类型:数值型和标称型。
本节将通过算法一步步地构造决策树,并会涉及许多有趣的细节。首先我们讨论数学上如何 使用信息论划分数据集,然后编写代码将理论应用到具体的数据集上,最后编写代码构建决策树。
在构造决策树时,我们需要解决的第一个问题就是,当前数据集上哪个特征在划分数据分类 时起决定性作用。为了找到决定性的特征,划分出最好的结果,我们必须评估每个特征。完成测 试之后,原始数据集就被划分为几个数据子集。这些数据子集会分布在第一个决策点的所有分支上。如果某个分支下的数据属于同一类型,则当前无需阅读的垃圾邮件已经正确地划分数据分类, 无需进一步对数据集进行分割。如果数据子集内的数据不属于同一类型,则需要重复划分数据子 集的过程。如何划分数据子集的算法和划分原始数据集的方法相同,直到所有具有相同类型的数 据均在一个数据子集内。

决策树的一般流程
(1) 收集数据:可以使用任何方法。 (2) 准备数据:树构造算法只适用于标称型数据,因此数值型数据必须离散化。 (3) 分析数据:可以使用任何方法,构造树完成之后,我们应该检查图形是否符合预期。 (4) 训练算法:构造树的数据结构。 (5) 测试算法:使用经验树计算错误率。 (6) 使用算法:此步骤可以适用于任何监督学习算法,而使用决策树可以更好地理解数据 的内在含义。

二. 信息增益
划分数据集的大原则是:将无序的数据变得更加有序。我们可以使用多种方法划分数据集, 但是每种方法都有各自的优缺点。组织杂乱无章数据的一种方法就是使用信息论度量信息,信息论 是量化处理信息的分支科学。我们可以在划分数据之前或之后使用信息论量化度量信息的内容。
在划分数据集之前之后信息发生的变化称为信息增益,知道如何计算信息增益,我们就可以 计算每个特征值划分数据集获得的信息增益,获得信息增益最高的特征就是最好的选择。 在可以评测哪种数据划分方式是最好的数据划分之前,我们必须学习如何计算信息增益。集 合信息的度量方式称为香农熵或者简称为熵,这个名字来源于信息论之父克劳德·香农。

三.划分数据集
上节我们学习了如何度量数据集的无序程度,分类算法除了需要测量信息熵,还需要划分数 据集,度量划分数据集的熵,以便判断当前是否正确地划分了数据集。我们将对每个特征划分数 据集的结果计算一次信息熵,然后判断按照哪个特征划分数据集是最好的划分方式。想象一个分 布在二维空间的数据散点图,需要在数据之间划条线,将它们分成两部分,我们应该按照x轴还 是y轴划线呢?

四. 递归构建决策树
目前我们已经学习了从数据集构造决策树算法所需要的子功能模块,其工作原理如下:得到原始数据集,然后基于最好的属性值划分数据集,由于特征值可能多于两个,因此可能存在大于 两个分支的数据集划分。第一次划分之后,数据将被向下传递到树分支的下一个节点,在这个节 点上,我们可以再次划分数据。因此我们可以采用递归的原则处理数据集。 递归结束的条件是:程序遍历完所有划分数据集的属性,或者每个分支下的所有实例都具有 相同的分类。如果所有实例具有相同的分类,则得到一个叶子节点或者终止块。任何到达叶子节 点的数据必然属于叶子节点的分类。

五. 构造注解树 绘制一棵完整的树需要一些技巧。我们虽然有x、y坐标,但是如何放置所有的树节点却是个问 题。我们必须知道有多少个叶节点,以便可以正确确定x轴的长度;我们还需要知道树有多少层,
以便可以正确确定y轴的高度。这里我们定义两个新函数getNumLeafs()和getTreeDepth(),来 获取叶节点的数目和树的层数

六.本章小结
决策树分类器就像带有终止块的流程图,终止块表示分类结果。开始处理数据集时,我们首 先需要测量集合中数据的不一致性,也就是熵,然后寻找优方案划分数据集,直到数据集中的 所有数据属于同一分类。ID3算法可以用于划分标称型数据集。构建决策树时,我们通常采用递 归的方法将数据集转化为决策树。一般我们并不构造新的数据结构,而是使用Python语言内嵌的 数据结构字典存储树节点信息。 使用Matplotlib的注解功能,我们可以将存储的树结构转化为容易理解的图形。Python语言的 pickle模块可用于存储决策树的结构。隐形眼镜的例子表明决策树可能会产生过多的数据集划分, 从而产生过度匹配数据集的问题。我们可以通过裁剪决策树,合并相邻的无法产生大量信息增益 的叶节点,消除过度匹配问题。 还有其他的决策树的构造算法,流行的是C4.5和CART,第9章讨论回归问题时将介绍CART 算法。 本书第2章、第3章讨论的是结果确定的分类算法,数据实例终会被明确划分到某个分类中。 下一章我们讨论的分类算法将不能完全确定数据实例应该划分到某个分类,或者只能给出数据实 例属于给定分类的概率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值