【统计学习|书籍阅读】第五章 决策树 p55-p75
文章目录
- 思路
- 决策树模型与学习
- 特征选择
- 信息增益
- 信息增益比
- 决策树的生成(生成算法)
- ID3算法
- C4.5生成算法
- 决策树的剪枝
- CART算法
思路
决策树是一种基本的分类与回归方法。主要讨论分类决策树。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。可以认为是if-then规则的集合,也可认为是定义在特征空间与类空间的条件概率分布。
学习时,利用训练数据,根据损失函数最小化原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。
决策树学习通常包括3个步骤:特征选择、决策树的生成和决策树的修建。
决策树模型与学习
决策树的学习目标是根据给定的训练数据集构建一个决策树模型,使它能够对实例进行正确的分类。决策树学习是由训练数据估计条件概率模型,基于特征空间划分的类的条件模型有无穷多个,选择的条件模型应该不仅对训练数据有很好的拟合,而且对未知数据有很好的预测。
决策树学习用损失函数实现这一目标。决策树损失函数通常是正则化的极大似然函数,决策树学习策略是以损失函数为目标函数的最小化。当损失函数确定之后,决策树学习问题就变为在损失函数意义下选择最优决策树问题。因为从所有可能的决策树中选取最优决策树是NP完全问题,所以现实中决策树学习算法通常使用启发式算法,近似求解优化问题。
决策树学习算法:
特征选择
特征选择在于选取对训练数据具有分类能力的特征。特征选择的准则是信息增益
或信息增益比
。
信息增益
信息增益可以直观地表示一个特征具有更好的分类能力。
定义: 特征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)
H(Y)与条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X)之差称为互信息,决策树学习中的信息增益等价于训练数据集中类与特征的互信息。
根据信息增益准则的特征选择方法:对训练数据集D,计算其每个特征的信息增益,并比较他们的大小,选择信息增益最大的特征。
信息增益比
在分类困难时,即在训练数据集的经验熵大的时候,信息增益值会偏大,反之,信息增益值会偏小。使用信息增益比可以对这一问题进行校正。
定义: 信息增益比定义为信息增益与训练数据集的经验熵之比。
决策树的生成(生成算法)
ID3算法
ID3算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。
C4.5生成算法
C4.5在生成的过程中,用信息增益比来选择特征。
决策树的剪枝
决策树生成算法递归产生决策树,直到不能继续下去为止。这样产生的树往往对训练数据的分类很准确,但是对于为止数据的分类却没有那么准确,即容易出现过拟合现象,为了防止这种现象的产生我们提出决策树的剪枝,对树进行简化。
决策树的剪枝往往通过极小化决策树整体的损失函数来实现。
设树T的叶结点个数为
∣
T
∣
|T|
∣T∣,t是树T的叶结点,该叶结点上有Nt个样本点,其中k类的样本点有
N
t
k
N_{tk}
Ntk个,
k
=
1
,
2
,
.
.
.
,
K
k=1,2,...,K
k=1,2,...,K,
H
t
(
T
)
H_t(T)
Ht(T)为叶结点t上的经验熵,
α
≥
0
\alpha \ge 0
α≥0为参数,则决策树学习损失函数可以定义为:
C
α
(
T
)
=
∑
t
=
1
∣
T
∣
N
t
H
t
(
T
)
+
α
∣
T
∣
C_{\alpha }(T) = \sum_{t=1}^{|T|}N_tH_t(T)+\alpha |T|
Cα(T)=t=1∑∣T∣NtHt(T)+α∣T∣
其中经验熵为:
H
t
(
T
)
=
−
∑
k
N
t
k
N
t
l
o
g
N
t
k
N
t
H_t(T)=-\sum_{k}\frac{N_{tk}}{N_t}log \frac{N_{tk}}{N_t}
Ht(T)=−k∑NtNtklogNtNtk
在损失函数中,将损失函数第一项记做:
C
(
T
)
=
∑
t
=
1
∣
T
∣
N
t
H
t
(
T
)
=
−
∑
t
=
1
∣
T
∣
∑
k
K
N
t
k
N
t
l
o
g
N
t
k
N
t
C(T)=\sum_{t=1}^{|T|} N_tH_t(T)=-\sum_{t=1}^{|T|} \sum_{k}^{K}\frac{N_{tk}}{N_t}log \frac{N_{tk}}{N_t}
C(T)=t=1∑∣T∣NtHt(T)=−t=1∑∣T∣k∑KNtNtklogNtNtk
这是有:
C
α
(
T
)
=
C
(
T
)
+
α
∣
T
∣
C_\alpha (T)=C(T)+\alpha |T|
Cα(T)=C(T)+α∣T∣.
C
(
T
)
C(T)
C(T)表示模型对训练数据的预测误差,即模型与训练数据的拟合程度,
∣
T
∣
|T|
∣T∣表示模型复杂度,参数
α
≥
0
\alpha \ge 0
α≥0控制两者之间的影响。较大的
α
\alpha
α促使选择较简单的模型,反之;
α
=
0
\alpha = 0
α=0意味着只考虑模型与训练数据的拟合程度,不考虑模型的复杂程度。
上式定义的损失函数极小化等价于正则化的极大似然估计。所以,利用损失函数最小原则进行剪枝就是用正则化的极大似然估计进行模型选择。
CART算法
分类回归树(classification and regression tree,CART),既可用于分类也可用于回归。对回归树用平方误差最小化准则,对分类树用基尼指数(Gini index)最小化准则,进行特征选择,生成二叉树。
使用“基尼指数”来选择划分属性,结点的纯度可用基尼值来度量:
G
i
n
i
(
p
)
=
∑
k
=
1
K
p
k
(
1
−
p
k
)
=
1
−
∑
k
=
1
K
p
k
2
Gini(p)=\sum_{k=1}^{K}p_k(1-p_k)=1-\sum_{k=1}^{K}p_k^2
Gini(p)=k=1∑Kpk(1−pk)=1−k=1∑Kpk2
对于给定的样本D,其基尼指数为:
G
i
n
i
(
D
)
=
1
−
∑
k
=
1
K
(
∣
C
k
∣
∣
D
∣
)
2
Gini(D)=1-\sum_{k=1}^{K} (\frac{|C_k|}{|D|} )^2
Gini(D)=1−k=1∑K(∣D∣∣Ck∣)2
在特征A的条件下,集合D的基尼指数定义为:
G
i
n
i
(
D
,
A
)
=
∣
D
1
∣
∣
D
∣
G
i
n
i
(
D
1
)
+
∣
D
2
∣
∣
D
∣
G
i
n
i
(
D
2
)
Gini(D,A)=\frac{|D_1|}{|D|}Gini(D_1)+ \frac{|D_2|}{|D|}Gini(D_2)
Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)