4.1 基本流程
4.1.1 决策树的结构
- 一般的,决策树包含一个根结点,多个内部结点和多个叶结点
- 叶结点表示决策结果(好瓜,坏瓜):根据叶结点里面的的样本集合判定该叶结点的决策结果
- 内部结点和根结点对应属性测试(attr=?):将结点内的样本集合根据属性测试的结果划分到各个子结点;根结点包含样本全集
- 从根结点到每个叶结点的路径即对应着一个判定测试序列
- 仅有一层划分的决策树,也称“决策树桩”(decision stump)
4.1.2 决策树学习基本算法
决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的分而治之(divide-and-conquer)策略。
可见,决策树的生成是一个递归过程。在决策树的基本算法中,有三种情形会导致递归返回:
(1)当前结点包含的样本全属于同一类,无需划分
(2)当前属性集为空,或所有样本在所有属性上取值相同,无法划分
(3)当前结点包含的样本为空,不能划分
对各种情形的处理方式:
\quad 情形(2):属性集为空或所有样本属性上取值相同
- 把当前结点标记为叶结点,其类别设定为该结点样本集合中最多的类别;
- 此为利用当前结点的后验分布
\quad 情形(3):样本为空
- 把当前结点标记为叶结点,其类别设定为父结点样本集合中最多的类别
- 把父结点的样本分布作为当前结点的先验分布
4.2 划分选择
4.2.1 决策树学习的关键
决策树学习的关键是如何选择最优划分属性
一般而言,随着划分过程的不断进行,我们希望决策树的分直接点所包含的样本尽可能属于同一类别,即结点的纯度(purity)越来越高。(也即信息熵越低)
4.2.2 信息增益(information gain)
信息熵
度量样本集合纯度最常用的一种指标是信息熵(information entropy)
样本集合 D D D中第 k k k类样本所占比例为 p k p_k pk(k=1,2,…, ∣ γ ∣ |\gamma| ∣γ∣),则集合 D D D的信息熵定义为:
(4.1) E n t ( D ) = − ∑ k = 1 ∣ γ ∣ p k log 2 p k Ent(D)=-\sum ^{\left| \gamma\right| }_{k=1}p_{k}\log _{2}p_{k}\tag{4.1} Ent(D)=−k=1∑∣γ∣pklog2pk(4.1)
E n t ( D ) Ent(D) Ent(D)的值越小,则 D D D的纯度越高。
注1:信息熵可以理解为信息的不确定性,《数学之美》第6章有很形象的例子介绍。
注2:信息熵最小值为0,最大值为 log 2 ∣ γ ∣ \log _{2}| \gamma| log2∣γ∣
最小值为0::在中越法中猜世界杯冠军
最大值为 log 2 ∣ γ ∣ \log _{2}| \gamma| log2∣γ∣:样本 D D D中 ∣ γ ∣ | \gamma| ∣γ∣类样本均匀分布(信息不确定性最大),即 p k = 1 ∣ γ ∣ p_k=\dfrac{1}{| \gamma|} pk=∣γ∣1,代入式(4.1)可得 E n t ( D ) = log 2 ∣ γ ∣ Ent(D)=\log _{2}| \gamma| Ent(D)=log2∣γ∣
属性a的信息增益 G a i n ( D , a ) Gain(D,a) Gain(D,a)
属性 a a a的 V V V个可能的取值: { a 1 , a 2 , … , a V } \left\{ a^{1},a^{2},\ldots ,a^{V}\right\} {
a1,a2,…,aV}
第 v v v个结点包含的 D D D中所有属性 a a a取值为 a v a^{v} av的样本: D v D^{v} Dv
每个分支节点的权重: ∣ D v ∣ ∣ D ∣ \dfrac{|D^{v}|}{|D|} ∣D∣∣Dv∣