(项目地址:https://github.com/ChanKamShing/decisionTree.git)
一、概念
决策树可分为两类:回归决策树和分类决策树。
- 回归决策树:对连续变量构建决策树;
- 分类决策树:对离散变量构建决策树。
1、信息增益
决策树必须涉及到一个概念,就是信息增益。信息增益又基于信息熵的知识(可参考里面关于信息熵的部分内容:https://blog.csdn.net/weixin_39400271/article/details/100921346)。
信息增益(Information Gain)的公式:
式中,为全信息量的信息熵,
为属性A的信息熵。
在决定树的前后节点的时候,会涉及到最优信息增益的问题,根据信息增益的大小排序。
2、决策树的构建过程
- 树从代表训练样本的根节点开始;
- 如果样本都在同一个类中,则该节点为树叶,并用该类标记;
- 否则,算法选择最有分类能力的属性作为决策树的当前节点;
- 根据当前决策节点属性取值的不同,将训练样本数据集data分为若干个子集,每个取值形成一个分支,有几个取值就形成几个分支;
- 针对步骤4得到一个子集,重复步骤1、2、3,递归形成每个划分样本的决策树。一旦一个属性只出现在一个节点上,就不必在该节点的任何子节点考虑它。
递归划分步骤的终止条件为:
- 给定节点的所有样本属于同一类。
- 没有剩余属性可以用来进一步划分样本。在这种情况下,使用多数表决,将给定的点转成树叶,并以样本中元组个数最多的类别为类别标记,同时也可以存放该节点样本的类别分布。
- 如果某一分支没有满足分支中已有分类的样本,则以样本的多数类创建一个树叶。
以上任一条件成立,都会终止递归。
二、实例说明
天气 | 温度 | 湿度 | 风速 | 是否举办活动 |
晴 | 炎热 | 高 | 弱 | 是 |
晴 | 炎热 | 高 | 强 | 否 |
阴 | 炎热 | 高 | 弱 | 是 |
雨 | 寒冷 | 正常 | 弱 | 是 |
雨 | 寒冷 | 正常 | 强 | 否 |
阴 | 寒冷 | 正常 | 强 | 是 |
晴 | 适中 | 高 | 弱 | 否 |