决策树,或称多级分类器,是模式识别中进行分类的一种有效方法,对于多类或多峰分布问题,这种方法尤为方便。 利用树分类器可以把一个复杂的多类别分类问题,转化为若干个简单的分类问题来解决。 它不是企图用一种算法、一个决策规则去把多个类别一次分开,而是采用分级的形式,使分类问题逐步得到解决。
一般来讲,一个决策树由一个根节点n1,一组非终止节点ni和一些终止节点tj组成,可对tj标以各种类别标签,有时不同的终止节点上可以出现相同的类别标签。 如果用T表示决策树,则一个决策树T对应于特征空间的一种划分,它把特征空间分成若干个区域,在每个区域中,某类的样本占优势,因此可以标出该类样本的类别标签。
决策树的一种简单形式是二叉树,它是指除叶结点外,树的每个节点仅分为两个分支,即每个非终止节点ni都有且仅有两个子节点nil和nir。 二叉树结构分类器可以把一个复杂的多类别分类问题转化为多级多个两类问题来解决,在每个非终止节点ni都把样本集分成左右两个子集。
分成的每一部分仍然可能包含多个类别的样本,可以把每一部分再分成两个子集,如此下去,直至分成的每一部分只包含同一类别的样本,或某一类样本占优势为止。 二叉树结构分类器概念简单、直观、便于解释,而且在各个节点上可以选择不同的特征和采用不同的决策规则,因此设计方法灵活多样,便于利用先验知识来获得一个较好的分类器。
一个二叉决策树的例子 在此例中,每个节点只选择一个特征,并给出相应的决策阈值。 对于一个未知样本x,只要从根节点到叶结点,顺序把x的某个特征观测值与相应的阈值相比较,就可做出决策,把x分到相应的分支,最后分到合适的类别中去。
在设计一个决策树时,主要应解决以下几个问题: 选择一个合适的树结构,即合理安排树的节点和分支; 确定在每个非终止节点上要使用的特征; 在每个非终止节点上选择合适的决策规则。 上述三个问题解决了,决策树的设计也就完成了。二叉树的设计也不例外。
把一个多类别分类问题转化为两类问题的形式是多种多样的,因此,对应的二叉树的结构也是各不相同的。通常的目的是要找一个最优的决策树。 一个性能良好的决策树结构应该具有小的错误率和低的决策代价。 但是由于很难把错误率的解析表达式和树的结构联系起来,而且在每个节点上所采用的决策规则也仅仅是在该节点上所采用的特征观测值的函数,因此,即使每个节点上的性能都达到最优,也不能说整个决策树的性能达到最优。
在实际问题中,人们往往提出其它一些优化准则,例如极小化整个树的节点数目,或从根节点到叶结点的最大路经长度,或从根节点到叶结点的平均路经长度等,然后采用动态规划的方法,力争设计出能满足某种准则的“最优”决策树。