部分内容引用自:https://blog.csdn.net/HerosOfEarth/article/details/52347820
引言:
决策树(Decision Tree)是一种基本的分类与回归方法,本文主要讨论分类决策树。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。相比朴素贝叶斯分类,决策树的优势在于构造过程不需要任何领域知识或参数设置,因此在实际应用中,对于探测式的知识发现,决策树更加适用。
决策树模型
1.定义
分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点和有向边组成。结点有两种类型:内部节点和叶节点,内部节点表示一个特征或属性,叶节点表示一个类。
分类的时候,从根节点开始,对实例的某一个特征进行测试,根据测试结果,将实例分配到其子结点;此时,每一个子结点对应着该特征的一个取值。如此递归向下移动,直至达到叶结点,最后将实例分配到叶结点的类中。
举一个通俗的栗子,各位立志于脱单的单身男女在找对象的时候就已经完完全全使用了决策树的思想。假设一位母亲在给女儿介绍对象时,有这么一段对话:
- 母亲:给你介绍个对象。
- 女儿:年纪多大了?
- 母亲:26。
- 女儿:长的帅不帅?
- 母亲:挺帅的。
- 女儿:收入高不?
- 母亲:不算很高,中等情况。
- 女儿:是公务员不?
- 母亲:是,在税务局上班呢。
- 女儿:那好,我去见见。
这个女生的决策过程就是典型的分类决策树。相当于对年龄、外貌、收入和是否公务员等特征将男人分为两个类别:见或者不见。假设这个女生的决策逻辑如下:
上图完整表达了这个女孩决定是否见一个约会对象的策略,其中绿色结点(内部结点)表示判断条件,橙色结点(叶结点)表示决策结果,箭头表示在一个判断条件在不同情况下的决策路径,图中红色箭头表示了上面例子中女孩的决策过程。
这幅图基本可以算是一棵决策树,说它“基本可以算”是因为图中的判定条件没有量化,如收入高中低等等,还不能算是严格意义上的决策树,如果将所有条件量化,则就变成真正的决策树了。(以上的决策树模型纯属瞎编乱造,不代表任何女生的择偶观,旨在直观理解决策树)
2.决策树与if-then规则
现在我们可以更抽象一些。决策树可以看成一个if-then规则的集合:由决策树的根结点到叶结点的每一条路径构建一条规则;路径上的内部结点的特征对应着规则的条件,而叶结点对应着分类的结论。决策树的路径和其对应的if-then规则集合是等效的,它们具有一个重要的性质:互斥并且完备。这里的意思是说:每一个实例都被一条路径或一条规则所覆盖,而且只被一条规则所覆盖。
3.决策树与条件概率分布
决策树还是给定特征条件下类的条件概率分布的一种表示。该条件分布定义在特征空间的划分(partition)上,特征空间被划分为互不相交的单元(cell),每个单元定义一个类的概率分布就构成了一个条件概率分布。决策树的一条路径对应于划分中的一个单元。决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。给定实例的特征X,一定落入某个划分,决策树选取该划分里最大概率的类作为结果输出。如图:
图(a)表示该实例的特征向量是二维的(即具有两个特征),图(b)表示给定特征 分类属于 类的条件概率分布。图中的方块有些地方完全没有,比如 轴上 这个区间,说明只要 落在这里, 就一定是-1的,同理对于 和 围起来的一定是 的。有些地方只有一半,比如 轴上 这个区间,说明决策树认为 落在这里, 只有一半概率是 的,根据选择条件概率大的类别的原则,就认为 是 的(因为不满足 )。
4.决策树的学习
决策树学习算法包含特征选择、决策树的生成与剪枝过程。决策树的学习算法通常是递归地选择最优特征,并用最优特征对数据集进行分割。开始时,构建根结点,选择最优特征,该特征有几种值就分割为几个子集,每个子集分别递归调用此方法,返回结点,返回的结点就是上一层的子结点。直到所有特征都已经用完,或者数据集只有一维特征为止。
二、特征选择
特征选择问题希望选取对训练数据具有良好分类能力的特征,这样可以提高决策树学习的效率。如果利用一个特征进行分类的结果与随机分类的结果没有很大差别,则称这个特征是没有分类能力的(对象是否喜欢打游戏应该不会成为关键特征吧,也许也会……)。为了解决特征选择问题,找出最优特征,先要介绍一些信息论里面的概念。
1.熵(entropy)
熵是表示随机变量不确定性的度量。设XX是一个取有限个值的离散随机变量,其概率分布为:
则随机变量的熵定义为
另外,
,当对数的底为2时,熵的单位为bit;为e时,单位为nat。
熵越大,随机变量的不确定性就越大。从定义可验证
2.条件熵(conditional entropy)
设有随机变量 其联合概率分布为
3.信息增益(information gain)
信息增益表示得知特征 的信息而使得类 的信息的不确定性减少的程度。特征 对训练数据集 的信息增益 ,定义为集合 的经验熵 与特征 给定条件下 的经验条件熵 之差,即
这个差又称为互信息。信息增益大的特征具有更强的分类能力。
根据信息增益准则的特征选择方法是:对训练数据集(或子集)计算其每个特征的信息增益,选择信息增益最大的特征。
计算信息增益的算法如下:
输入:训练数据集
和特征
;
输出:特征
对训练数据集
的信息增益
(1)计算数据集
的经验熵
(2)计算特征
对数据集
的经验条件熵
(3)计算信息增益
4.信息增益比(information gain ratio)
特征 对训练数据集 的信息增益比 定义为其信息增益 与训练数据集 关于特征 的值的熵 之比,即
其中, ,n是特征A取值的个数。
其中,设训练数据为 , 表示其样本容量,即样本个数。设有 个类 , , 为属于 的样本个数, ,设特征 的取值将 划分成 个子集 , 为 的样本个数, .记子集 中属于类 的样本集合为 ,即 , 为 的样本个数
例1 表5.1 是由一个15个样本组成的贷款训练数据,数据包括贷款申请人的4个特征:第1个特征是年龄,有3个可能值:青年,中年,老年,第2个特征是有工作,有2个可能值,第3个特征是有自己的房子,有2个可能值,第4个特征是贷款情况,有3个可能值,最后一列是类别,是否同意贷款,有2个取值
解:首先计算经验熵
一共有两类,贷款的有9个数据,不贷款的有6个数据,所以:
然后计算各特征对数据集D的信息增益,分别以
表示年龄,有工作,有自己的房子和信贷情况4个特征,则
(1)
这里
分别是
取值为青年、中年和老年的样本子集,类似的
(2)
(3)
(4)
最后比较特征的信息增益值,发现房子的信息增益值最大,所以选择A_{3}作为最优特征