ID3决策树
使用信息增益确定最优划分属性。
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_{v=1}^{V}\frac{\mid D^v\mid}{\mid D\mid}Ent(D^v)
Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)
其中
G
a
i
n
(
D
,
a
)
Gain(D, a)
Gain(D,a)表示数据集
D
D
D上属性a的信息增益;
E
n
t
(
D
)
Ent(D)
Ent(D)表示数据集
D
D
D的信息熵;
V
V
V表示属性
a
a
a的可取值数目;
D
v
D^v
Dv表示属性
a
a
a上取值为
a
v
a^v
av(
a
a
a的第
v
v
v个可取值)的样本。
缺点:偏向于可取值数目较多的属性。
C4.5决策树
使用增益率确定最优属性划分。
G
a
i
n
_
r
a
d
i
o
(
D
,
a
)
=
G
a
i
n
(
D
,
a
)
I
V
(
a
)
Gain\_radio(D,a)=\frac{Gain(D,a)}{IV(a)}
Gain_radio(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_{v=1}^{V}\frac{\mid D^v\mid}{\mid D\mid}log_2\frac{\mid D^v\mid}{\mid D\mid}
IV(a)=−v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣
为属性
a
a
a的固有值,信息熵,通常属性
a
a
a的可取值越多,固有值越大。
C4.5决策树偏向取值少的属性,为避免这一限制,实际的C4.5决策树算法先从划分属性中找到信息增益高于平均水平的属性,在从中选择增益率最高的。
连续属性:C4.5决策树使用二分法处理连续属性。
G
a
i
n
(
D
,
a
)
=
max
t
∈
T
a
  
G
a
i
n
(
D
,
a
,
t
)
=
max
t
∈
T
a
  
E
n
t
(
D
)
−
∑
λ
∈
{
−
,
+
}
∣
D
t
λ
∣
∣
D
∣
E
n
t
(
D
t
λ
)
\begin{aligned} Gain(D, a)&=\max\limits_{t\in T_a}\;Gain(D, a, t)\\ &=\max\limits_{t\in T_a}\;Ent(D)-\sum_{\lambda\in\{-,+\}}\frac{\mid D_t^\lambda\mid}{\mid D\mid}Ent(D^\lambda_t) \end{aligned}
Gain(D,a)=t∈TamaxGain(D,a,t)=t∈TamaxEnt(D)−λ∈{−,+}∑∣D∣∣Dtλ∣Ent(Dtλ)
其中
T
a
=
{
a
i
+
a
i
+
1
2
∣
1
≤
i
≤
n
−
1
}
T_a=\{ \frac{a^i+a^{i+1}}{2}\mid1\leq i\leq n-1 \}
Ta={2ai+ai+1∣1≤i≤n−1}
为对属性
a
a
a的所有取值排序后得到的中位点集合,
D
t
+
D_t^+
Dt+和
D
t
−
D_t^-
Dt−分别表示
D
D
D上属性
a
a
a取值大于
t
t
t的样本和不大于
t
t
t的样本。二分法尝试对每个中位点划分,从而找到最佳划分点。
缺失值处理:对属性 a a a, D ~ \tilde{D} D~表示在属性 a a a上没有缺失值的样本子集, a a a可取值 { a 1 , a 2 , . . . , a V } \{a^1,a^2,...,a^V\} {a1,a2,...,aV}, D ~ v \tilde{D}^v D~v表示 D ~ \tilde{D} D~中在属性 a a a上取值为 a v a^v av的样本子集, D ~ k \tilde{D}_k D~k表示 D ~ \tilde{D} D~中属于第 k k k类( k = 1 , 2 , . . . , ∣ Y ∣ k=1,2,...,\mid\mathcal{Y}\mid k=1,2,...,∣Y∣)的样本子集。
首先对所有样本定义一个权重
w
x
w_\boldsymbol{x}
wx,初始为1,定义
ρ
=
∑
x
∈
D
~
w
x
∑
x
∈
D
w
x
p
~
k
=
∑
x
∈
D
~
k
w
x
∑
x
∈
D
w
x
r
~
v
=
∑
x
∈
D
~
v
w
x
∑
x
∈
D
w
x
\begin{aligned} \rho&=\frac{\sum_{\boldsymbol{x}\in\tilde{D}}w_\boldsymbol{x}}{\sum_{\boldsymbol{x}\in{D}}w_\boldsymbol{x}}\\ \tilde{p}_k&=\frac{\sum_{\boldsymbol{x}\in\tilde{D}_k}w_\boldsymbol{x}}{\sum_{\boldsymbol{x}\in{D}}w_\boldsymbol{x}}\\ \tilde{r}_v&=\frac{\sum_{\boldsymbol{x}\in\tilde{D}^v}w_\boldsymbol{x}}{\sum_{\boldsymbol{x}\in{D}}w_\boldsymbol{x}} \end{aligned}
ρp~kr~v=∑x∈Dwx∑x∈D~wx=∑x∈Dwx∑x∈D~kwx=∑x∈Dwx∑x∈D~vwx
ρ
\rho
ρ表示无缺失值样本所占的比例,
p
~
k
\tilde{p}_k
p~k表示无缺失值样本中第
k
k
k类所占的比例,
r
~
v
\tilde{r}_v
r~v表示无缺失值样本中属性
a
a
a上取值为
a
v
a^v
av的样本所占的比例。那么信息增益可推广为
G
a
i
n
(
D
,
a
)
=
ρ
×
G
a
i
n
(
D
~
,
a
)
=
ρ
×
(
E
n
t
(
D
~
)
−
∑
i
=
1
V
r
~
v
E
n
t
(
D
~
v
)
)
\begin{aligned} Gain(D,a)&=\rho\times Gain(\tilde{D},a)\\ &=\rho\times(Ent(\tilde{D})-\sum_{i=1}^{V}\tilde{r}_vEnt(\tilde{D}^v)) \end{aligned}
Gain(D,a)=ρ×Gain(D~,a)=ρ×(Ent(D~)−i=1∑Vr~vEnt(D~v))
其中
E
n
t
(
D
~
)
=
−
∑
i
=
1
∣
Y
∣
p
~
k
l
o
g
2
p
~
k
Ent(\tilde{D})=-\sum_{i=1}^{\mid \mathcal{Y}\mid}\tilde{p}_klog_2\tilde{p}_k
Ent(D~)=−i=1∑∣Y∣p~klog2p~k
在划分时,若样本
x
\boldsymbol{x}
x的划分属性已知,则直接划分到对应子节点,权值保持不变;否则同时将样本
x
\boldsymbol{x}
x划分到所有子节点,在与属性
a
v
a^v
av对应的子节点中权值调整为
r
~
v
w
x
\tilde{r}_vw_\boldsymbol{x}
r~vwx,也就是让一个样本以不同概率划分到不同节点。
在确定最优划分属性时只使用无缺失值样本,在划分时对缺失值划分入所有子节点。
CART决策树
使用基尼指数确定最优划分属性。
G
i
n
i
(
D
)
=
∑
k
=
1
∣
Y
∣
∑
k
′
≠
k
p
k
p
k
′
=
1
−
∑
k
=
1
∣
Y
∣
p
k
2
\begin{aligned} Gini(D)&=\sum_{k=1}^{\mid \mathcal{Y}\mid}\sum_{k'\neq k}p_kp_k'\\ &=1-\sum_{k=1}^{\mid \mathcal{Y}\mid}p_k^2 \end{aligned}
Gini(D)=k=1∑∣Y∣k′̸=k∑pkpk′=1−k=1∑∣Y∣pk2
其中
∣
Y
∣
\mid\mathcal{Y}\mid
∣Y∣代表类别数,
p
k
p_k
pk代表取第
k
k
k个类别的概率。表示从数据集中随机抽取两个样本,其类别标记不一致的概率。基尼系数越小,表示数据集纯度越高。
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_{v=1}^{V}\frac{\mid D^v\mid}{\mid D\mid}Gini(D^v)
Gini_index(D,a)=v=1∑V∣D∣∣Dv∣Gini(Dv)
基尼指数是属性划分后的基尼系数加权和,越小越好。
多变量决策树
多变量决策树的非叶节点不再是对单个属性进行划分,而是对属性的线性组合进行划分。形如 ∑ i = 1 d w i a i = t \sum_{i=1}^{d}w_ia_i=t ∑i=1dwiai=t,其中 w i w_i wi是属性 a i a_i ai的权重,例如“ − 0.8 × -0.8\times −0.8×密度 − 0.44 × -0.44\times −0.44×含糖率 ≤ − 0.313 \leq-0.313 ≤−0.313“, w i w_i wi和 t t t通过学习得到。能够实现斜的划分边界。