决策树模型是一种经典的分类算法,是通过一系列的判断规则对数据进行分类的过程。主要分为模型训练和类别预测两个阶段,在模型训练阶段通过有监督的学习得到一系列的规则,在预测阶段通过这些规则进行分类。此外,决策树也已经被扩展到回归分析中,可以分为分类决策树和回归决策树。
决策树最早由JRossQuinlan于20世纪80年代提出,也就是经典的ID3算法,ID3算法通过选择最大的信息增益属性作为每一步分支的决策属性,对于离散型的属性,每个取值作为一个分支,这种策略的目的是使得树的深度尽量少,然存在一个重大的缺陷是在选择分裂属性时往往偏向于选择属性取值较多的属性,也即忽略了树节点的广度,一个极端的情况就是在数据属性中存在一个ID属性,在ID的训练中,由于每个ID只对应于一个样本,当以该属性进行分支时,每个分支节点的分类准确率均为100%,此时属性的信息增益由样本个数决定而不取决于属性的具体含义。因此在92年的时候Quinlan又提出了C4.5,改用信息增益率来选择分裂属性,即在选择分裂属性时增加考虑属性的分裂信息度(用于衡量树的广度和均匀度,详见下文)。此外,C4.5还增加了对连续型属性的支持,通过一种合适的离散化算法寻找最优的分割点把数据离散化成两类,进而使用相同的方式进行分支。
以上所述只是决策树的基本模型,在C4.5中还有一个重要的任务是剪枝,即去除没有作用不大的分支以缩小树的大小,在树的训练中还涉及到很多的模型检验方法,如N折交叉检验等。在算法实现上树节点的构造、算法程序优化等都是需要琢磨的细节,理论与实际运用之间存在较大差距,在此本文局限于简单的理论理解。在接下来的行文中主要是ID3算法的理论部分。
一、分类问题