参考博客:决策树基础篇之让我们从相亲说起 (po主Jack-Cui,《——大部分内容转载自
信息熵与ID3算法参考 (po主青松愉快,《——信息增益内容参考
机器学习实战(三)——决策树(po主 呆呆的猫,《——信息增益内容参考
参考书籍:《机器学习实战》——第三章
摘要:本章介绍了决策树算法概念和构建决策树所需的所有子模块,介绍了熵、信息增益的公式和代码,使用一个贷款demo介绍划分数据集并给出了完整代码和测试结果。下一章介绍如何构建决策树。
目录
一 决策树
1 概念介绍
决策树(decision tree)是一种基本的分类与回归方法。以下讲的是分类决策树。
用《机器学习实战》——第三章的例子来说,一个简单的邮件分类流程如下,包含判断模块(矩形)、终止模块(椭圆)、分支(左右箭头),到达终止模块后停止运行并得到分类。
用比较术语的说法是:
分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点有两种类型:内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。
我们可以把决策树看成一个if-then规则的集合,将决策树转换成if-then规则的过程是这样的:由决策树的根结点(root node)到叶结点(leaf node)的每一条路径构建一条规则;路径上内部结点的特征对应着规则的条件,而叶结点的类对应着规则的结论。决策树的路径或其对应的if-then规则集合具有一个重要的性质:互斥并且完备。这就是说,每一个实例都被一条路径或一条规则所覆盖,而且只被一条路径或一条规则所覆盖。这里所覆盖是指实例的特征与路径上的特征一致或实例满足规则的条件。
2 流程
使用决策树做预测需要以下过程:
决策树构建这一过程可以概括为3个步骤:特征选择、决策树的生成和决策树的修剪。
- 收集数据:可以使用任何方法得到一些供我们利用的数据。
- 准备数据:收集完的数据,我们要进行整理,将这些所有收集的信息按照一定规则整理出来,并排版,方便我们进行后续处理。
- 分析数据:可以使用任何方法,决策树构造完成之后,我们可以检查决策树图形是否符合预期。
- 训练算法:这个过程也就是构造决策树,同样也可以说是决策树学习,就是构造一个决策树的数据结构。
- 测试算法:使用经验树计算错误率。当错误率达到了可接收范围,这个决策树就可以投放使用了。
- 使用算法:此步骤可以使用适用于任何监督学习算法,而使用决策树可以更好地理解数据的内在含义。
3 划分数据集—特征选择
每一个判断节点都是将数据集划分的依据,划分后目的在于能够正确的将一类数据尽可能的划分到一起,不断的划分数据子集,直到所有具有相同类型的数据均在一个数据子集内。
划分数据的原则是将无序数据变得更加有序,如何度量划分前后数据的变化?
3.1信息增益与香农熵
信息论中,将划分数据集前后信息发生的变化称为信息增益(information gain)。
在决策树分类问题中,信息增益就是决策树在进行属性选择划分前和划分后信息的差值。
如何计算这种信息的变化?信息熵是其中一种。在1948年,香农引入了信息熵(又称香浓熵shannon entropy),将其定义为离散随机事件出现的概率,一个系统越 是有序,信息熵就越低,反之一个系统越是混乱,它的信息熵就越高。所以信息熵可以被认为是系统有序化程度的一个度量。
3.2 信息熵计算
熵定义为信息的期望值。在信息论与概率统计中,熵是表示随机变量不确定性的度量。如果待分类的事务可能划分在多个分类之中,则符号xi的信息定义为