文章目录
1. 基本流程
(1)定义
一般的,一棵决策树包含一个根节点、若干内部节点和叶节点。
- 叶节点:对应决策结果。
- 根节点和中间节点:根据属性测试的结果将所属样本划分到其子节点中。
(2)决策树基本算法
决策树的生成是一个递归过程。
- 在每次递归中,首先判断是否达到递归返回条件,获得叶节点。
- 选择最优化分节点。
- 根据节点的属性测试结果将包含的样本划分到子节点。
- 以子节点为子树根节点,剔除当前最优划分属性,调用决策树生成函数。
(3)三种递归返回情况
- 当前D中所有样本都属于同一类别C时:
将Node标记为类型为C的叶节点。 - 当前属性集A为空:
多数投票,将Node标记为当前样本集合D中数量最多类别的叶节点。 - 当前样本集D为空
将Node标记为其父节点样本中数量最多的类的叶节点。
2. 划分选择
我们希望随着划分的不断进行,决策树的分支节点的纯度越来越高,分支节点所包含的样本尽可能属于同一类别。
属性 | 缺点 | 方法 | 内容 |
---|---|---|---|
信息增益 | 对可取值数目较多的属性有所偏好 | ID3 | 选择信息增益最大的属性 |
信息增益率 | 对可取值数目较多的属性有所偏好 | C4.5 | 从候选划分属性找出信息增益高于平均水平的属性,再从中选取增益率最高 |
基尼指数 | CART | 选择划分后基尼指数最小的属性 |
2.1 信息增益(information gain)
(1)信息熵
信息熵(information entropy)是度量样本纯度最常用的一种指标。
E n t ( D ) = − ∑ k = 1 ∣ γ ∣ p k log 2 p k Ent(D)=-\sum_{k=1}^{|\gamma|} p_k \log_2 p_k Ent(D)=−k=1∑∣γ∣pklog2pk
度量: E n t ( D ) Ent(D) Ent(D)值越小,惊异值越小,纯度越高。
- 假设当 p k = 0 p_k=0 pk=0时, p k log 2 p k = 0 p_k \log_2 p_k =0 pklog2pk=0。
- 当 p k = 1 p_k=1 pk=1时, E n t ( D ) Ent(D) Ent(D)值最小为0。当 p k = 1 ∣ γ ∣ p_k=\frac{1}{|\gamma|} pk=∣γ∣1时,即样本按类别1:1分布时, E n t ( D ) Ent(D) Ent(D)值最大为1.
理解: 信息熵用于度量某一样本集D的纯度。只要给定样本集就可以计算其对应的信息熵。
(2)信息增益(information entropy)
假设离散属性 α \alpha α有 V V V个可能的取值为 { a 1 , a 2 , ⋯ , a V } \{a_1,a_2,\cdots,a_V\} {
a1,a2,⋯,aV},用 α \alpha α来进行划分,会产生 V V V个分支节点。其中第v各分支节点包含了D中所有在属性 α \alpha α上取值为 a v a_v av的样本,记为 D v D^v Dv。
可以计算出用属性 α \alpha α对样本D进行划分所得到的信息增益:
G a i n ( D , α ) = E n t ( D ) − ∑ i = 1 V ∣ D i ∣ ∣ D ∣ E n t ( D i ) Gain(D,\alpha)=Ent(D)-\sum_{i=1}^V \frac{|D^i|}{|D|}Ent(D^i) Gain(D,α)=Ent(D)−i=1∑V∣D∣∣Di∣Ent(Di)
其中, ∣ D i ∣ ∣ D ∣ \frac{|D^i|}{|D|} ∣D∣∣Di∣为该分支节点 a i a_i ai的权重,样本数越多分支节点的影响越大。
- 信息增益 = 划分前的信息上 - 划分后各分支节点信息熵的加权和。
- 一般而言,信息增益越大,则意味着使用 α \alpha α来进行划分所获得的纯度提升越大。
(3)实例分析
以色泽属性为例,计算按色泽划分后的信息增益:
- 计算划分前样本集D的信息熵
E n t ( D ) = 8 17 l o g 2 8 17 + 9 17 l o g 2 9 17 = 0.998 Ent(D)=\frac{8}{17}log_2\frac{8}{17}+\frac{9}{17}log_2\frac{9}{17}=0.998 Ent(D)=178log2178+17