4 决策树
4.1 算法原理
逻辑角度:一堆if-else的组合(一堆判断 核心在于判断条件)
几何角度:特征空间,找划分点
最终目的:将样本约分越“纯”——信息熵度量纯度
4.2 ID3决策树
自信息
I
(
X
)
=
−
l
o
g
2
P
(
x
)
I(X)=-log_{2}P(x)
I(X)=−log2P(x)
信息熵-自信息的期望,概率*自信息值
以离散型为例:
H
(
X
)
=
E
[
I
(
X
)
]
=
−
∑
x
P
l
o
g
2
P
(
x
)
H(X)=E[I(X)]=-\sum_{x}^{}Plog_{2}P(x)
H(X)=E[I(X)]=−x∑Plog2P(x)
信息熵什么时候最大,什么时候最小?
当有个概率值为1时,其他值的概率都为0,信息熵为0,此时最小(最确定)。
当所有取值概率都均等时,信息熵最大(最不确定)。
可以从两个角度证明最大值最小是
- 仅考虑 ∑ k = 1 n x k = 1 \sum_{k=1}^{n} x_{k}=1 ∑k=1nxk=1时,对 f ( x 1 , … , x n ) f\left(x_{1}, \ldots, x_{n}\right) f(x1,…,xn)求最大值等同于在约束条件下求函数最小值(拉格朗日乘子法)
min ∑ k = 1 n x k log 2 x k s.t. ∑ k = 1 n x k = 1 \begin{aligned} \min & \sum_{k=1}^{n} x_{k} \log _{2} x_{k} \\ \text { s.t. } & \sum_{k=1}^{n} x_{k}=1 \end{aligned} min s.t. k=1∑nxklog2xkk=1∑nxk=1
2.仅考虑 0 ≤ x k ≤ 1 0\le x_{k} \le 1 0≤xk≤1的话, f ( x 1 , … , x n ) f\left(x_{1}, \ldots, x_{n}\right) f(x1,…,xn)可以看成是 n n n个互不相关的一元函数的和,即
f ( x 1 , … , x n ) = ∑ k = 1 n g ( x k ) f\left(x_{1}, \ldots, x_{n}\right) = \sum_{k=1}^{n} g(x_{k}) f(x1,…,xn)=k=1∑ng(xk)
求一阶导二阶导。
条件熵( Y的信息熵关于概率 X分布 的期望):在已知 X 后 Y 的不确定性
H
(
Y
∣
X
)
=
∑
x
p
(
x
)
H
(
Y
∣
X
=
x
)
H(Y \mid X)=\sum_{x} p(x) H(Y \mid X=x)
H(Y∣X)=x∑p(x)H(Y∣X=x)
4.3 C4.5决策树
在ID3决策树上的改进,ID3存在一个问题:当属性太多,划分的子集太小,算出的信息增益没有代表性,例如“编号”这个属性,每个样本都不一样,不能这样划分,会导致过拟合。
类似于归一化思想,除以一个值,当子集合数量越多,除以的数越大。用增益率代替信息增益。
缺点:对数目多的情况好,但是如果数目太少会导致分母也很少,言下之意对子集数目少的时候结果不准确。
因此,C4.5决策树并未完全使用“增益率”代替“信息增益”,而是采用一种启发式的方法:先选出信息增益高于平均水平的属性,然后再从中选择增益率最高的。
4.4 CART决策树 (Classification and Regression Tree)
纯度除了信息熵以外还能用什么去衡量?
基尼数Gini
基尼数定义为,从数据集中随机抽取两个样本,样本类别不一致的概率。因此Gini值越小越纯。
Gini
(
D
)
=
∑
k
=
1
∣
Y
∣
∑
k
′
≠
k
p
k
p
k
′
=
∑
k
=
1
∣
Y
∣
p
k
(
1
−
p
k
)
=
1
−
∑
k
=
1
∣
Y
∣
p
k
2
\begin{aligned} \operatorname{Gini}(D) &=\sum_{k=1}^{|\mathcal{Y}|} \sum_{k^{\prime} \neq k} p_{k} p_{k^{\prime}} \\ &=\sum_{k=1}^{|\mathcal{Y}|} p_{k}\left(1-p_{k}\right) \\ &=1-\sum_{k=1}^{|\mathcal{Y}|} p_{k}^{2} \end{aligned}
Gini(D)=k=1∑∣Y∣k′=k∑pkpk′=k=1∑∣Y∣pk(1−pk)=1−k=1∑∣Y∣pk2
基尼指数(类比信息熵和条件熵)
Gini index
(
D
,
a
)
=
∑
v
=
1
V
∣
D
v
∣
∣
D
∣
Gini
(
D
v
)
)
\text { Gini index }(D, a)=\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Gini}\left(D^{v}\right))
Gini index (D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv))
CART决策树:选择基尼指数最小的属性作为最优划分属性
a
∗
=
arg
min
a
∈
A
Gini index
(
D
,
a
)
a_{*}=\underset{a \in A}{\arg \min } \text { Gini index }(D, a)
a∗=a∈Aargmin Gini index (D,a)
具体划分点?
感谢datawhale提供的学习交流平台和资源,学习视频可以参照https://www.bilibili.com/video/BV1Mh411e7VU