决策树模型与学习《一》
决策树模型与学习
1. 定义
一般的,一棵决策树包含一个根结点,若干个内部结点和若干个叶结点;叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;跟结点包含样本全集,从跟结点到每个叶结点的路径对应一个判定测试序列。
上面的定义可能有些抽象,我随意画了一个图来加深理解;
可以看出,该决策树按照性别、身高、厨艺来构建,对其属性的测试,在最终的叶结点决定相亲对象是否符合男生相亲的标准。
2. 基本算法
决策树的算法通常是一个递归的选择最优特征,并根据该特征对训练数据进行分割,使得各个子数据有一个最好的分类过程,这一过程对应着特征空间的划分,也对应着决策树的构建。目前常见的算法包括 CART (Classification And Regression Tree)、ID3、C4.5、随机森林 (Random Forest) 等。
- 开始先构建根节点,将所有训练数据都放在根节点;
- 选择一个最优特征,按照这一特征将训练数据分割成子集,使得各个子集有一个在当前条件下最好的分类;
- 如果这些子集已经能够被基本正确分类,那么构建叶结点,并将这些子集分到所对应的叶结点中去;
- 如果还有子集不能被基本正确分类,那么就对这些子集选择新的最优特征,继续对其进行分割,构建相应的结点;
- 如此的递归下去,直至所有的训练数据子集被基本正确分类,或者没有合适的特征为止。最后每个子集都被分到叶结点上,即都有了明确的分类, 这就生成了一颗决策树。
3. 划分选择
决策树算法的重点在上图的第八行:“选择最优划分属性”,也就是如何选择最优划分属性,一般而言,随着划分的层级不断增高,我们希望决策树的分支结点所包含的样本尽可能的在同一个类别(否则专门为很少数的样本创建一个分支结点没啥意义),也就是其的“纯度”越来越高。
而信息熵则是专门用来表示样本纯度的指标,假定p(xi)表示在当前集合x中第 i 类样本所占的比例为p(xi),公式如下:
其中,熵的值越小,集合x的纯度就越高;熵的值越大,随机变量的不确定性就越大。
其中,t是T划分之后的集合,考虑到不同的分支结点所包含的样本数目不同,给分支结点赋予权重p(t),即样本数目越多的分支结点的影响就越大。一般而言,信息增益越大,则意味着使用该属性划分所获得的纯度提升就越大(因为H是不变的,所以信息熵就得越小,则纯度就越高),因此,我们可用信息增益来进行决策树的划分属性选择。
![](https://i.loli.net/2018/11/17/5beff4d639cbb.jpg)
关注公众号:数据结构与算法那些事儿,每天一篇数据结构与算法