本文整体阅读时长约10分钟。如果只想对决策树有个概念性的了解,建议只阅读各级标题即可。
决策树算法是一种采用树形结构解决分类问题的算法。其树形结构如下图所示,主要包含根节点,叶结点,及两者之间的中间结点,可以看出,根节点划分开始直至全部为叶结点结束。
选择哪些特征作为分类的标准是决策树算法的关键,因为特征选择的好坏直接决定了分类的效果是否理理想。因此,在存在的众多特征(属性)中,如何找到与分类最相关、次相关的特征是核心。一般地,决策树算法会根据:信息增益,作为准则来进行特征的确定。即对根节点计算所有特征的信息增益,选择信息增益最大的特征作为最开始的节点特征。
在进行特征确定之后,就可以根据最相关属性进行分类:即从该节点出发,根据该特征的不同取值建立子节点;对每个子节点使用相同的方式生成新的子节点,直到信息增益很小或者没有特征可以选择为止。这样,决策树就生成完毕了。
决策树在生成过程中,为了尽量分类正确,节点划分过程有时会不断重复,造成分支过多,有可能会将训练样本分类太好,而泛化能力减弱,即出现过拟合。因此,有必要在决策树生成后进行剪枝处理。
决策树是根据信息增益来进行特征选择的,信息增益定义为
其中D为总的样本,a为属性,v为在属性a中的v类样本,信息增益越大,表明该属性对分类的相关性越大。Ent()表示信息熵(entropy),公式如下:
k表示在样本D中的第k类样本,
表示第k类样本所占样本总体的概率。类比于现实中的熵,可以理解为,信息熵越小,表明纯度越高。
按照第2节中决策树学习的流程,有了上述的分类依据,我们便可对根节点进行分类,其实套用公式即可。
在ID3算法上的改进,由于ID3算法会偏向于样本数目多的属性,因此ID3引进了一个因子来抵消它,但会引来偏好数目少的样本。因此,在应用中,先从候选属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。其具体公式见最后附图。
和之前选择增益率最大的不同,CART算法是通过基尼指数的最小值来选择属性,基尼指数越小,其纯度越高。以上所有的讲解小结在最后附图中。
参考文档: 周志华,《机器学习》,清华大学出版社。