决策树:
通过一层层的属性判定,对当前判定数据进行分类的一种机器学习方法。
决策树的构造:
决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得各个子数据集有一个最好的分类的过程。这一过程对应着对特征空间的划分,也对应着决策树的构建。
1) 开始:构建根节点,将所有训练数据都放在根节点,选择一个最优特征,按着这一特征将训练数据集分割成子集,使得各个子集有一个在当前条件下最好的分类。
2) 如果这些子集已经能够被基本正确分类,那么构建叶节点,并将这些子集分到所对应的叶节点去。
3)如果还有子集不能够被正确的分类,那么就对这些子集选择新的最优特征,继续对其进行分割,构建相应的节点,如果递归进行,直至所有训练数据子集被基本正确的分类,或者没有合适的特征为止。
4)每个子集都被分到叶节点上,即都有了明确的类,这样就生成了一颗决策树。
每层属性的选择方法:
在了解选择方法前,我们需要先了解几个定义:
- 纯度(purity):随着划分的进行,我们希望决策树的分支节点所包含的样本尽可能属于同一类别,也就是样本的“纯度”尽可能的高。
- 信息熵(information entropy):度量样本集合纯度最常用的一种指标,假定当前样本集合D中第k类样本所占的比例为(k=1,2,3…),则D的信息熵定义为:
Ent(D)的值越小,则D的纯度越高。 - 信息增益(information gain):使用属性a来进行划分所获得的“纯度”,信息增益越大,则纯度越大。
根据以上定义,以西瓜书上的例子引出选择属性的方法:
在决策树学习开始时,根节点包含D中的所有样例,其中正例p1=8/17,反例p2=9/17,于是根据信息熵的公式计算根节点的信息熵:
则属性“色泽”的信息增益为