决策树算法以树状结构表示数据的分类结果,每个叶子节点对应决策结果。
划分选择:我们希望决策树的分支结点包含样本尽可能属于同一类别,即结点的纯度高
ID3决策树 信息增益
“信息熵”(information entropy)是度量样本集合纯度最常用的一种指标,假定当前样本集合D中第k类样本所占的比例为
p
k
p^k
pk(k=1,2,…|y|)(二分类时|y|=2),则D的信息熵定义为
E
n
t
(
D
)
=
−
∑
k
=
1
∣
y
∣
p
k
l
o
g
2
p
k
Ent(D)=-\sum\limits_{k=1}^{|y|}p_klog_2p_k
Ent(D)=−k=1∑∣y∣pklog2pk
Ent(D)的值越小,则D的纯度越高。
假定离散属性a有V个可能的值{
a
1
,
a
2
,
…
.
,
a
V
a^1,a^2,….,a^V
a1,a2,….,aV},若使用a来对样本集D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为
a
V
a^V
aV的样本,记为
D
v
D^v
Dv.考虑到不同分支结点所包含的样本数不同,给分支的赋予权重
∣
D
v
∣
/
∣
D
∣
|D^v|/|D|
∣Dv∣/∣D∣。计算a对样本集D划分所获得的“信息增益”(information gain):
G
a
i
n
(
D
,
a
)
=
E
n
t
(
D
)
−
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
E
n
t
(
D
v
)
Gain(D,a)=Ent(D)-\sum\limits_{v=1}^V\frac{|D^v|}{|D|}Ent(D^v)
Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)
一般而言,信息增益越大,使用属性a来进行划分所获得的“纯度提升”越大
C4.5决策树 增益率
实际上,信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响使用增益率(gain ratio)来划分最优属性
G
a
i
n
_
r
a
t
i
o
(
D
,
a
)
=
G
a
i
n
(
D
,
a
)
I
V
(
a
)
Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)}
Gain_ratio(D,a)=IV(a)Gain(D,a)
其中
I
V
(
a
)
=
−
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
l
o
g
2
∣
D
v
∣
∣
D
∣
IV(a)=-\sum\limits_{v=1}^V\frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|}
IV(a)=−v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣
注意,信息率准则对可取值数目较少的属性有所偏好,因此,C4.5并不是直接选择增益率最大的候选划分属性,而是先从候选划分属性中找到信息增益高于平均水平的属性,再从中选择增益率高的。
CART决策树 Classification and Regression Tree 基尼系数
数据集D的纯度可用基尼值度量:
G
i
n
i
(
D
)
=
∑
k
=
1
∣
y
∣
∑
k
′
≠
k
p
k
p
k
′
=
1
−
∑
k
=
1
∣
y
∣
p
k
2
Gini(D)=\sum\limits_{k=1}^{|y|}\sum\limits_{k'\neq k}p_kp_{k'}=1-\sum\limits_{k=1}^{|y|}p_k^2
Gini(D)=k=1∑∣y∣k′=k∑pkpk′=1−k=1∑∣y∣pk2
Gini(D)反映了从数据集中随机抽取两个样本,其类别标记不一样的概率,因此,Gini(D)越小,数据集D纯度越高。
属性a的基尼系数定义为:
G
i
n
i
_
i
n
d
e
x
(
D
,
a
)
=
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
G
i
n
i
(
D
v
)
Gini\_index(D,a)=\sum\limits_{v=1}^V\frac{|D^v|}{|D|}Gini(D^v)
Gini_index(D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv)
选择使得划分后基尼系数最小的属性作为最优划分属性
剪枝:是决策树对付“过拟合”的主要手段,主要有预剪枝(prepruning)和后剪枝(postpruning)两种策略