1. 定义
决策树是机器学习预测体系中一个重要的算法。它是一个树形结构,包含根节点,若干内部节点,若干叶子节点三种节点。其中根节点包含数据的全部样本点,每个内部节点是关于某个属性的决策,叶子节点的输出即为每个样本点的输出。一般情况下,叶子节点中有且只有一个有输出值,输出值为当前节点中数量最多的类别。
2. 算法的框架流程
- (1)输出所有数据样本点
- (2)选择该节点包含的某个属性进行决策划分
- (3)生成若干节点,并对生成节点判断其是否满足分裂停止条件,满足则执行(4),否则,执行(2);
- (4)若该属性下全部样本点的类别一致或其策略值小于(大于)阈值,将其置为叶子节点。
3. 最优属性划分
由以上框架可以判断,决策树的关键在于如何选择最优属性。一般而言,在划分的过程中,我们希望划分节点所包含的样本尽可能地属于同一类别,即节点的纯度越高越好。依据最优属性划分策略,决策树可分为:ID3算法,C4.5算法,CART算法。
3.1 ID3算法
ID3算法是最为原始的决策树,也是现代决策树的基础。ID3算法依据信息增益来选择最优属性,信息增益越大意味着该属性对划分的“纯度”提升效果最好。在将信息增益之前,首先介绍下信息熵。
信息熵是度量样本纯度(混乱程度)最常用的一种指标。信息熵越大代表样本的纯度越低。信息熵的定义如下:
Ent(D)=−∑k=1|y|pklog2pk
E
n
t
(
D
)
=
−
∑
k
=
1
|
y
|
p
k
l
o
g
2
p
k
这里
D
D
代表数据集, 代表以某个属性划分的样本占总体数据集的比例大小。y代表以某个属性划分的类别个数。
信息增益衡量该属性对划分“纯度”的提升效果。假设 D D 依据某个属性可以被划分为t个类别,则信息增益可以被定义如下:
其中
|Di|
|
D
i
|
代表第i类的样本点数,
Ent(Di)
E
n
t
(
D
i
)
代表第i类数据集合的信息 这里以西瓜书中所示的数据集所示(如上图),首先计算根节点的信息熵,根节点包含的样本点共有17个,其中好瓜占
817
8
17
,非好瓜占
917
9
17
,则根节点的信息熵如下:
Ent(根节点)=−(817log2817+917log2917)≈0.9975
E
n
t
(
根
节
点
)
=
−
(
8
17
l
o
g
2
8
17
+
9
17
l
o
g
2
9
17
)
≈
0.9975
其次分别计算根节点所包含的属性划分得到的信息增益,这里按照西瓜书所述,以色泽属性的划分为例计算其信息增益。以色泽划分,共分为青绿、浅白、乌黑三种色泽取值,其中青绿6个样例,浅白5个样例,乌黑6个样例。分别计算各自的信息熵:
Ent(青绿)=−(36log236+36log236)≈1
E
n
t
(
青
绿
)
=
−
(
3
6
l
o
g
2
3
6
+
3
6
l
o
g
2
3
6
)
≈
1
Ent(浅白)=−(15log215+45log245)≈0.7219
E
n
t
(
浅
白
)
=
−
(
1
5
l
o
g
2
1
5
+
4
5
l
o
g
2
4
5
)
≈
0.7219
Ent(乌黑)=−(46log246+26log226)≈0.9183
E
n
t
(
乌
黑
)
=
−
(
4
6
l
o
g
2
4
6
+
2
6
l
o
g
2
2
6
)
≈
0.9183
则以色泽属性划分的信息增益为:
信息增益色泽划分=Ent(根节点)−{617(1+0.9183)+517∗0.7219}≈0.109
信
息
增
益
色
泽
划
分
=
E
n
t
(
根
节
点
)
−
{
6
17
(
1
+
0.9183
)
+
5
17
∗
0.7219
}
≈
0.109
接下里依次计算剩余各个属性的信息增益,挑选最大的信息增益对应的属性进行根节点的划分节点的构建。此后基于ID3决策树的构建方式与上面类似。
3.2 C4.5算法
回顾ID3算法,在计算信息增益的时候依据各个属性值样本所占比例大小作为信息熵权重,势必会造成对应样本个数较多的属性划分的信息增益较大。因此,ID3算法在构建决策树的时候会偏重样本个数较多的属性。在ID3算法的基础上,C4.5算法不在使用信息增益作为筛选最优属性的依据,而是根据增益率进行最优属性选择。增益率的定义如下:
增益率=insEnt(D,a)IV(a)
增
益
率
=
i
n
s
E
n
t
(
D
,
a
)
I
V
(
a
)
其中
insEnt(D,a)
i
n
s
E
n
t
(
D
,
a
)
是在数据集合D下依据属性a划分得到的信息增益,
IV(a)
I
V
(
a
)
定义如下:
IV(a)=∑j=1p|Dj||D|log2|Dj||D|
I
V
(
a
)
=
∑
j
=
1
p
|
D
j
|
|
D
|
l
o
g
2
|
D
j
|
|
D
|
,这里
p
p
为依据属性 的属性值划分的类别个数,
|Dj|
|
D
j
|
是第j个类别的样例个数。
在ID3算法的基础上,采用C4.5算法策略时,关于色泽属性,
IV(色泽)=−{2∗617log2617+517log2517}≈1.57986
I
V
(
色
泽
)
=
−
{
2
∗
6
17
l
o
g
2
6
17
+
5
17
l
o
g
2
5
17
}
≈
1.57986
这里需要注意的是,增益率准则对可取值数目较少的属性比较偏好,因此,C4.5并不是直接使用增益率进行最优属性选择,而是先从候选划分属性中选择信息增益高于平均水平的属性,再从中选择增益率较高的属性。
3.3 CART算法
不同于以上两种方法,CART算法依据独特的”基尼指数“(Gini index)作为最优属性的判别。具体基尼值的定义如下:
Gini(D)=∑i=1k∑j≠ipipj=1−∑i=1kp2i
G
i
n
i
(
D
)
=
∑
i
=
1
k
∑
j
≠
i
p
i
p
j
=
1
−
∑
i
=
1
k
p
i
2
分析基尼值,其实它表示的是从数据样本集合中任取两个样本不同类别的概率,概率越低代表该数据集合纯度越高,因为刻画的是概率形式,因此CART既可用于分类又可以用于回归。无需进行离散化。
数据集合D下关于a属性的 Gini G i n i 指数定义如下:
Gini_index(D,a)=∑i=1k|Di||D|log2Gini(Di)
G
i
n
i
_
i
n
d
e
x
(
D
,
a
)
=
∑
i
=
1
k
|
D
i
|
|
D
|
l
o
g
2
G
i
n
i
(
D
i
)
对于所有属性,选取基尼指数较小的属性作为最优划分属性,可构建对应的决策树。