决策树
一、ID3/C4.5算法
概念
(1)信息熵
E n t r o p y ( x ) = − ∑ i N c l a s s P ( x i ) l o g 2 P ( x i ) Entropy(x) = -\sum_{i}^{N_{class}}P(x_i)log_2 P(x_i) Entropy(x)=−i∑NclassP(xi)log2P(xi)
假设只有2个类别(N=2),$ P(x_i)
在【
0
,
1
】之间,
在【0,1】之间,
在【0,1】之间,log_2 P(x_i) $ 小于0,因此Entropy(x) 大于0;
当两类别概率分别0.5,0.5的时候(样本均匀)信息熵最大,此时纯度最低;当分别为1,0的时候信息熵最小,此时纯度最高;
因此,信息熵表示不确定性(混乱程度),纯度最低的时候混乱性最大。
息增益指的就是划分可以带来纯度的提高,信息熵的下降。
(2)信息增益–ID3
决策树划分需要往数据纯度提高的方向进行才能正确识别样本,即信息熵变小的方向,假设划分前的信息熵为
S
S
S,根据特征
T
T
T划分后的信息熵为
S
T
S_{T}
ST,则
S
T
S_{T}
ST的值应该最小,即
S
−
S
T
S-S_{T}
S−ST的值(信息增益)应该最大;
即信息增益最大的时候划分的数据越纯;
信息增益的计算公式为:
G
a
i
n
(
S
,
T
)
=
E
n
t
r
o
p
y
(
S
)
−
∑
v
∈
T
∣
S
v
∣
∣
S
∣
E
n
t
r
o
p
y
(
∣
S
v
∣
)
Gain(S, T) = Entropy(S) -\sum_{v\in T }^{} \frac{|S_v|}{|S|} Entropy(|S_v|)
Gain(S,T)=Entropy(S)−v∈T∑∣S∣∣Sv∣Entropy(∣Sv∣)
其中,
v
v
v为特征
T
T
T的取值,当
v
v
v为特征
T
1
T_1
T1时,一共有样本数目为
∣
S
v
∣
|S_v|
∣Sv∣,该集合的信息熵为
E
n
t
r
o
p
y
(
∣
S
v
∣
)
Entropy(|S_v|)
Entropy(∣Sv∣)
(3)信息增益率–C4.5
G
a
i
n
−
r
a
t
i
o
(
S
,
T
)
=
G
a
i
n
(
S
,
T
)
H
T
(
S
)
Gain_-ratio(S, T) = \frac{Gain(S, T) }{H_T(S)}
Gain−ratio(S,T)=HT(S)Gain(S,T)
其中,
H
T
(
S
)
=
−
∑
v
∈
T
∣
S
v
∣
∣
S
∣
l
o
g
2
∣
S
v
∣
∣
S
∣
H_T(S) = -\sum_{v\in T }^{} \frac{|S_v|}{|S|} log_2 \frac{|S_v|}{|S|}
HT(S)=−v∈T∑∣S∣∣Sv∣log2∣S∣∣Sv∣
假设集合S大小为9,特征T有3种类型的值A,B,C且集合大小都为3,3,3,则$H_T(S)
值最大,特征纯度最小,信息增益率最小;特征
T
1
有
3
种类型的值
A
,
B
,
C
且集合大小为
9
,
0
,
0
,(即特征可取值数量较少)则
值最大,特征纯度最小,信息增益率最小;特征T1有3种类型的值A,B,C且集合大小为9,0,0,(即特征可取值数量较少)则
值最大,特征纯度最小,信息增益率最小;特征T1有3种类型的值A,B,C且集合大小为9,0,0,(即特征可取值数量较少)则H_T(S)$ 值最小,特征纯度最大,信息增益率最大;
因此,信息增益率偏向于可取值数目较少的属性。
二、CART树
参考
https://zhuanlan.zhihu.com/p/548190779
https://www.cnblogs.com/cgmcoding/p/14685828.html
三、GBDT
参考
https://blog.csdn.net/wzk4869/article/details/126392996
https://cloud.tencent.com/developer/article/1764843