决策树是用于分类与回归的方法。我们主要讨论分类。决策树成树形结构,表示基于特征对实例进行分类的过程。可以认为是定义在特征空间与类空间上的条件概率分布。优点是模型具有可读性,分类速度快。学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。决策树学习通常包括3个步骤:特征选择、决策树的生成和决策树的修剪。(决策树学习常用算法ID3、C4.5、CART算法)
5.1 决策树模型学习
5.1.1 决策树模型
定义5.1(决策树) 分类决策树模型是一种描述对实例进行分类的树形结构。决策树由节点和有向边组成。结点有两种类型:内部结点和叶节点。内部结点表示一个特征或属性,叶节点表示一个类。
用决策树分类,从根节点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每个子结点对应着该特征的一个取值。如此递归地对实例进行测试分配,直至达到叶节点。最后将实例分到叶结点的类中。
5.1.2 决策树与if-then规则
将决策树转换为if-then的过程:
由决策树的根节点到叶结点的每一条路径构建一条规则;路径上内部结点的特征对应着规则的条件,而叶结点的类对应着规则的结论。
决策树的路径或对应的if-then规则集合具有一个重要的性质:互斥并且完备。及每个实例都被一条路径或一条规则所覆盖。覆盖指的是实例的特征与路径上的特征一致或实例满足规则的条件。
5.1.3 决策树与条件概率分布
决策树还可以表示给定特征条件下类的条件概率分布。这一条件概率分布定义在特征空间的一个划分上。将特征空间划分为互不相交的单元或区域,并在每个单元定义一个类的概率分布就构成了一个条件概率分布。决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。假设X表示特征的随机变量,Y为表示类的随机变量,那么条件概率分布可以表示为P(Y|X)。X取值于给定划分下单元的集合,Y取值于类的集合。各叶节点上的条件概率往往偏向某一个类。决策树分类时将该结点的实例强行分到条件概率大的那一类去。
5.1.4 决策树学习
给定训练数据其中为输入实例(特征向量),n为特征个数,为类标记,i=1,2,...,N,N为样本容量。学习的目标是根据给定的训练数据集构建一个决策树模型,使他能够对实例进行正确的分类。
决策树学习的算法通常是一个递归地选择最优特征,并根据该训练特征对训练数据进行分割。这一过程对应着对特征空间的划分,也对应着决策树的构建。开始,构建根节点,将所有训练数据都放在一个根节点。选择一个最优特征,按照这个特征将训练数据集分割成子集,使得各个子集有一个在当前条件下最好的分类。如果这些子集已经能够被基本正确分类,那么构建叶节点,并将这些子集分到所对应的叶节点中去;如果还有子集不能被正确的分类,那么就对这些子集选择新的最优特征,继续分割,构建相应的结点。如此递归下去,直到所有训练数据子集被基本正确分类,或者没有合适的特征为止。最后每个子集都被分到叶节点上,即都有了明确的类,这就构成了一棵决策树。
如果生成的决策树对未知的测试数据没有很好的分类能力,即出现过拟合现象。那么需要对已经生成的树进行剪枝,从而有更好的泛化能力。
5.2 特征选择
5.2.1 问题
选择对训练数据具有分类能力的特征。选择的准则是信息增益或信息增益比。
5.2.2 信息增益
熵表示随机变量不确定性的度量。设X是一个取有限个值的随机离散变量,其概率分布为
随机变量X的熵为
(5.1)
若,(5.1)中的对数以2为底或者以e为底。熵只依赖与X的分布,而与X的值无关,也将X的熵记作
(5.2)
熵越大,随机变量的不确定性就越大。
设有随机变量(X,Y),其联合概率分布为
条件熵表示在已知随机变量X的条件下随机变量Y的不确定性,定义为X给定条件下Y的条件概率分布的熵对X的数学期望
(5.5)
.
当熵和条件熵的概率由数据估计得到时,所对应的熵与条件熵分别称为经验熵和经验条件熵。
定义5.2(信息增益) 特征A对训练数据集D的信息增益,定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,
决策树学习应用信息增益准则选择特征。经验熵H(D)表示对数据集D进行分类的不确定性。经验条件熵H(D|A)表示特征A给定条件下对数据集进行分类地不确定性。他们的差就是信息增益,表示由于特征A而使对数据集D的分类的不确定性减少的程度。信息增益大的特征具有更强的分类能力。
根据信息增益准则的特征选择方法是:对训练数据集(或子集)D,计算其每个特征的信息增益,并比较他们的大小,选择信息增益最大的特征。
变量说明:给定训练数据集D
|D|:样本容量
有K个类,k=1,2,...,K,:属于类的样本个数,
为特征A有n个不同的取值,根据特征A的取值将D划分为n个子集,为样本个数,
子集中属于类的样本集合为,,为的样本个数。
算法5.1(信息增益的算法)
输入:训练数据集D和特征A
输出:特征A对训练数据集D的信息增益
(1) 计算数据集D的经验熵H(D)
(2)计算特征A对数据集D的经验条件熵H(D|A)
(3)计算信息增益
5.2.3 信息增益比
因为信息增益划分数据,存在偏向于选择取值较多的特征的问题,利用信息增益比可以校正。是特征选择的另一准则
定义5.3(信息增益比) 信息增益与训练数据集D关于特征A的值的熵之比
n是特征A取值的个数。