决策树(decision tree)是一种基本的分类与回归方法。本章主要讨论用于分类的决策树。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。
它可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。
其主要优点:1.模型具有可读性;2.分类速度快
阶段 | 操作 |
---|---|
学习时 | 利用训练数据,根据损失函数最小化的原则建立决策树模型 |
预测时 | 对新的数据,利用决策树模型进行分类 |
决策树学习通常包括3个步骤:特征选择->决策树的生成->决策树的修剪
5.1决策树模型与学习
5.1.1决策树模型
定义5.1(决策树):分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点有两种类型:内部结点(internalnode)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。
5.1.2决策树与if-then规则
5.1.3决策树与条件概率分布
5.1.4决策树学习
决策树学习用损失函数表示这一目标。如下所述,决策树学习的损失函数通常是正则化的极大似然函数。决策树学习的策略是以损失函数为目标函数的最小化。
当损失函数确定后,学习问题就变为在损失函数意义下选择最优决策树的问题。因为从所有可能的决策树中选取最优决策树是NP完全问题,所以现实中决策树学习算法通常采用启发式方法,近似求解这一最优化问题,这样得到的决策树是次最优(sub-optimal)的。
决策树学习算法包含特征选择、决策树的生成与决策树的剪枝过程。由于决策树表示一个条件概率分布,所以深浅不同的决策树对应着不同复杂度的概率模型。决策树的生成对应于模型的局部选择,决策树的剪枝对应于模型的全局选择。决策树的生成只考虑局部最优,相对地,决策树的剪枝则考虑全局最优。
决策学习常用的算法有ID3、C4.5与CART,下面结合这些算法分别叙述决策树学习的特征选择、决策树的生成和剪枝过程。
5.2特征选择
5.2.1特征选择问题
通常特征选择的准则是信息增益或信息增益比
5.2.2信息增益
为了便于说明,先给出熵与条件熵的定义
在信息论与概率统计中,熵(entropy)是表示随机变量不确定性的度量。设X是一个取有限个值的离散随机变量,其概率分布为
P
(
X
=
x
i
)
=
p
i
,
i
=
1
,
2
,
.
.
.
,
n
P(X=x_i)=p_i,i=1,2,...,n
P(X=xi)=pi,i=1,2,...,n
则随机变量X的熵定义为(若
p
i
=
0
p_i=0
pi=0,则定义
0
l
o
g
0
=
0
0log0=0
0log0=0)
H
(
X
)
=
−
∑
i
=
1
n
p
i
l
o
g
p
i
H(X)=-\sum\limits_{i=1}^n p_i log p_i
H(X)=−i=1∑npilogpi
由于熵只依赖于X的分布,而与X的取值无关,所以也可将X的熵记作H§,即
H
(
p
)
=
−
∑
i
=
1
n
p
i
l
o
g
p
i
H(p)=-\sum\limits_{i=1}^n p_i log p_i
H(p)=−i=1∑npilogpi
熵越大,随机变量的不确定性就越大。从定义可验证
0
≤
H
(
p
)
≤
l
o
g
n
0≤H(p)≤log n
0≤H(p)≤logn
设有随机变量
(
X
,
Y
)
(X,Y)
(X,Y),其联合概率分布为
P
(
X
=
x
i
,
Y
=
y
j
)
=
p
i
j
,
i
=
1
,
2
,
.
.
.
,
n
;
j
=
1
,
2
,
.
.
.
,
m
P(X=x_i,Y=y_j)=p_{ij},i=1,2,...,n;j=1,2,...,m
P(X=xi,Y=yj)=pij,i=1,2,...,n;j=1,2,...,m
条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性。随机变量X给定的条件下随机变量Y的条件熵(conditional entropy)H(Y|X),定义为X给定条件下Y的条件概率分布的熵对X的数学期望
H
(
Y
∣
X
)
=
∑
i
=
1
n
p
i
H
(
Y
∣
X
=
x
i
)
H(Y|X)=\sum\limits_{i=1}^n p_iH(Y|X=x_i)
H(Y∣X)=i=1∑npiH(Y∣X=xi)
这里,
p
i
=
P
(
X
=
x
i
)
,
i
=
1
,
2
,
.
.
.
,
n
p_i=P(X=x_i),i=1,2,...,n
pi=P(X=xi),i=1,2,...,n
当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵与条件熵分别称为经验熵(empirical entropy)和经验条件熵(empirical conditional entropy)。此时,若有0概率,令0log0=0
信息增益(information gain)表示得知特征X的信息而使得类Y的信息不确定性减少的程度
定义5.2(信息增益)特征A对训练数据集D的信息增益
g
(
D
,
A
)
g(D,A)
g(D,A),定义为集合D的经验熵
H
(
D
)
H(D)
H(D)与特征A给定条件下D的经验条件熵
H
(
D
∣
A
)
H(D|A)
H(D∣A)之差,即
g
(
D
,
A
)
=
H
(
D
)
−
H
(
D
∣
A
)
g(D,A)=H(D)-H(D|A)
g(D,A)=H(D)−H(D∣A)
一般地,熵H(Y)与条件熵H(Y|X)之差称为互信息(mutual information)。决策树学习中的信息增益等价于训练数据集中类与特征的互信息。
根据信息增益准则的特征选择方法是:对训练数据集(或子集)D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征。
5.2.3信息增益比
以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题。
信息增益的计算方式涉及到条件熵(Conditional Entropy),其计算公式为:
H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ ⋅ H ( D i ) H(D|A) = \sum_{i=1}^n \frac{|D_i|}{|D|} \cdot H(D_i) H(D∣A)=i=1∑n∣D∣∣Di∣⋅H(Di)
其中, H ( D ∣ A ) H(D|A) H(D∣A) 是在特征 A A A 条件下数据集 D D D 的条件熵, D i D_i Di 是特征 A A A 的每个取值对应的子数据集, ∣ D i ∣ |D_i| ∣Di∣ 表示子数据集的大小, ∣ D ∣ |D| ∣D∣ 表示总数据集的大小。
注意到在计算条件熵时,分母 ∣ D ∣ |D| ∣D∣ 是不变的,但分子 ∣ D i ∣ |D_i| ∣Di∣ 取决于特征 A A A 的取值个数。如果特征 A A A 的取值较多,那么就会有更多的 ∣ D i ∣ |D_i| ∣Di∣ 需要相加,这会导致条件熵的计算中有更多的项。
这个问题的关键在于,条件熵的值越低,信息增益越高。因此,如果特征 A A A 具有更多的取值,它可能会导致更多的子分支,每个子分支对应一个取值,而每个子分支的条件熵通常较低,因为数据更容易在这个子分支中进行分类。这会使得信息增益在计算时受到特征取值数量的影响,偏向于选择取值较多的特征。
为了克服这个问题,可以考虑使用一些改进的特征选择准则,例如信息增益比(Information Gain Ratio)或基尼不纯度(Gini impurity)。这些准则在计算中会考虑到特征取值的数量,以减轻信息增益对取值较多特征的偏向,使得特征选择更加平衡。