决策树概述及其思想

        决策树是一类常见的机器学习算法。其基本的思路是按照人的思维,不断地根据某些特征进行决策,最终得出分类。其中每个节点都代表着具有某些特征的样本集合,节点直接按照样本的某些特征进行生成。如下为判断西瓜是不是好瓜的一棵决策树。

一棵决策树

        显然决策树的形成具有某种意义上的递归属性,我们可以用分而治之的方法来构建一棵决策树。首先我们要找到递归停止的条件:1.当前结点的样本都具有相同的属性(或者已经不具备未用过的属性),则无法再向下划分。2.当前节点的样本都属于同一类时,也显然不需要划分。3.当前节点的包含的样本集合为空集时,同样无需划分。(这里需要注意的是,如果我们当前节点为空,是否还有必要生成呢?原因是,训练集里不存在的类型,测试集里可能会存在。)

        决策树的基本生成算法如下图所示

决策树学习基本算法

        显然,我们需要先检测递归运行情况,是否还需要继续递归。倘如还需要继续递归,则根据某项特征,将总的样本划分为多类,并对每一类都继续递归。值得注意的是,上面的第三种情况--即某一节点为空的情况是写在for循环内部的,这是因为初始的训练集不太可能为空,当某一节点为空时,处于经验上的考量,我们认为这个节点的类型就是其父节点中最有可能的类。

        学习算法的重点在于如何选择最优划分属性。显然我们希望分支节点尽可能的属于同一个类--即希望节点的纯度越高越好。关键在于我们如何定义节点的纯度。

你可能感兴趣的:(决策树概述及其思想)