Decision Tree
决策树是一种常见的机器学习方法,其主要用途是对新示例进行分类。我们希望从给定训练数据集学得一个模型进行分类,这个把样本分类的任务,可看作决策或判定的过程。
一般,一颗决策树包含一个根结点、若干个内部节点和若干个叶结点;叶结点对应于决策结果,其他每个节点对应于一个属性测试(可看作是某属性的某一种取值),根结点包含样本全集。决策树学习的目的是为了产生一种泛化能力强,即处理未见示例强的决策树。
决策树的生成是一个递归的过程,在决策树基本算法中,有三种情况会导致递归返回:
(1)当前结点所包含的样本属于同一类别;
(2)当前属性集为空,即样本中没有属性,没有多余的属性可以进行划分;
(3)当前结点样本集为空,即属性中没有样本,此种情况在训练过程中看似无用,但是在决策树的对新示例的分类中至关重要,体现了泛化的思想
在第(2)种情况下,我们把当前结点标记为叶结点,并将其类别设定为当前所含样本类别最多的类别;在第(3)种情况下,同样把当前结点标记为叶结点,将其类别设定为其父结点所含样本类别最多的类别。
在决策树学习中,关键是如何选择最优划分属性,一般而言,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的纯度越来越高。现在有很多种高效的决策树算法,最为出名的是ID3、C4.5、CART。
1. ID3算法
ID3算法本质上是一种贪心法,为了使样本划分的纯度越来越高,在每次选择最优属性的过程中,都选择使当前信息熵下降最快的属性进行样本划分。
1.1 信息增益
信息熵(information entropy)是度量样本集合纯度最常用的一种指标。假定当前样本集合 D 中第
Ent(D) 的值越小,则 D 的纯度越高。
假定离散属性