简介
∙
\bullet
∙ 流行的决策树算法有: ID3、C4.5和CART。
∙
\bullet
∙ 不同的决策树方法区别:选择特征/阈值(
x
j
=
t
x_{j}= t
xj=t)进行节点分裂的准则不同。
1)ID3:信息增益最大(对标签y提供信息最多的特征),倾向于选择取值多的特征进行分裂。
2)C4.5:ID3的改进,信息增益率最大
3)CART:分类:GINI指数最小;回归:均方误差最小
ID3
∙
\bullet
∙ 令当前节点的样本集合为D
∙
\bullet
∙ 用样本的比例估计概率分布:
P
(
Y
=
c
)
=
π
c
=
1
∣
D
∣
Π
(
y
i
=
c
)
P(Y=c) = \pi_{c} = \frac{1}{|D|}\Pi(y_{i}=c)
P(Y=c)=πc=∣D∣1Π(yi=c)
∙
\bullet
∙ 分裂之前的熵:
H
(
D
)
=
−
∑
i
=
1
c
P
(
Y
=
c
)
l
o
g
P
(
Y
=
c
)
H(D) = -\sum_{i=1}^{c}P(Y=c)logP(Y=c)
H(D)=−i=1∑cP(Y=c)logP(Y=c) 这里的log是以2为底
∙
\bullet
∙ 分裂成V个子集后的熵:
H
X
(
D
)
=
∑
v
=
1
V
∣
D
V
∣
∣
D
∣
H
(
D
V
)
H_X(D) = \sum_{v=1}^{V}\frac{|D_{V}|}{|D|}H(D_V)
HX(D)=v=1∑V∣D∣∣DV∣H(DV)
∙
\bullet
∙ 信息增益:
g
a
i
n
x
(
D
)
=
H
(
D
)
−
H
X
(
D
)
gain_{x}(D) = H(D) - H_{X}(D)
gainx(D)=H(D)−HX(D) 可解释为“根据候选特征X对样本集合进行分裂,对标签Y提供的信息”,不是很好理解啊
∙
\bullet
∙ 可以证明:特征X分裂为Y提供的信息增益等于X、Y的互信息
I
(
X
,
Y
)
=
H
(
X
)
+
H
(
Y
)
−
H
(
X
,
Y
)
I(X,Y) = H(X) + H(Y) - H(X,Y)
I(X,Y)=H(X)+H(Y)−H(X,Y)
分裂之后,希望每个节点的类别是相同的。熵是对不确定性的度量,系统由不确定变得更确定,也就是熵减少,说明外界给它提供了一些信息,这个信息就是对属性x进行分裂得来的。应结合李永乐老师讲的熵的概念来理解。老师其实没有讲互信息是什么,一句就带过了。
信息增益计算及节点分裂实例
希望信息增益最大,分裂前的熵是一样的,所以只须选取分裂后熵最小的分裂特征。
左右两个橙色节点,都只有一个分类了,可以停止分裂,称为叶子节点。如果值有多个,分裂后并不是二叉树,后边的CART是二叉树。
C4.5
∙
\bullet
∙ ID3选择信息增益最大的特征进行分裂,倾向于选择取值多的特征。像ID这样取值很多的特征,会分裂出很多子节点,但对分类没有意义。需分析为什么会倾向于选择取值多的特征。
∙
\bullet
∙ C4.5:选择信息增益率最大的特征进行分裂
∙
\bullet
∙ 分裂信息:
s
p
l
i
t
_
i
n
f
o
x
(
D
)
=
−
∑
v
=
1
V
∣
D
v
∣
D
l
o
g
2
∣
D
v
∣
∣
D
∣
split\_info_x(D) = -\sum_{v=1}^{V}\frac{|D_v|}{D}log_{2}\frac{|D_v|}{|D|}
split_infox(D)=−v=1∑VD∣Dv∣log2∣D∣∣Dv∣
∙
\bullet
∙ 信息增益率:
g
a
i
n
_
r
a
t
i
o
X
(
D
)
=
g
a
i
n
X
(
D
)
s
p
l
i
t
_
i
n
f
o
X
(
D
)
gain\_ratio_X(D) = \frac{gain_X(D)}{split\_info_X(D)}
gain_ratioX(D)=split_infoX(D)gainX(D)相比于更少的子节点,将节点分裂成更多的子节点,熵减少会更多,信息增益会更大。所以对于ID3来说,会倾向于选择特征取值较多的特征进行分裂,而且会得到更多的子节点,模型就会变得更复杂