决策树
信息熵: 随机变量的不确定性的度量.
H
(
X
)
=
−
∑
i
=
1
n
p
i
log
p
i
H(X)=-\sum_{i=1}^{n} p_{i} \log p_{i}
H(X)=−i=1∑npilogpi
0
≤
H
(
X
)
≤
log
n
0 \leq H(X) \leq \log n
0≤H(X)≤logn
信息增益: 得知特征X的信息而使得类Y的信息的不确定性减少的程度.
g
(
Y
,
X
)
=
H
(
Y
)
−
H
(
Y
│
X
)
g(Y,X)=H(Y)-H(Y│X)
g(Y,X)=H(Y)−H(Y│X)
信息增益算法
输入:训练数据集D和特征A
输出:特征A对训练数据集D的信息增益g(D,A)
-
计算数据集D的经验熵H(D)
-
计算特征A对数据D的经验条件熵H(D|A)
H ( D ) = − ∑ i = 1 n ∣ C k ∣ ∣ D ∣ log 2 ∣ C k ∣ ∣ D ∣ H(D)=-\sum_{i=1}^{n} \frac{\left|C_{k}\right|}{|D|} \log _{2} \frac{\left|C_{k}\right|}{|D|} H(D)=−i=1∑n∣D∣∣Ck∣log2∣D∣∣Ck∣ -
计算信息增益
g ( D , A ) = H ( D ) − H ( D │ A ) g(D,A)=H(D)-H(D│A) g(D,A)=H(D)−H(D│A)
ID3算法
思想: 在决策树各个节点上应用信息增益准则选择特征, 递归地构建决策树.
方法:从根节点出发, 对结点计算所有可能的特征的信息增益, 选择信息增益最大的特征作为节点的特征, 并递归构建决策树.
(ID3相当于用极大似然法进行概率模型的选择)
输入: 训练数据集D, 特征集A, 阈值ε
输出: 决策树T
- 若D中所有实例属于同一类 C k C_k Ck, 则T为单节点数, 并将类 C k C_k Ck作为该节点的类标记,返回T.
- 若A=∅, 则T为单节点树, 并将D中实例数最大的类 C k C_k Ck作为该节点的类标记, 返回T.
- 否则,安装信息增益算法, 计算A中各特征对D的信息增益, 选择信息增益最大的特征 A g A_g Ag.
- 若A_g的信息增益小于阈值ε,则设置T为单节点树, 并将D 中实例数最大的类C_k作为该节点的类标记, 返回T.
- 否则,对 A g A_g Ag的每一可能值 a i a_i ai, 依 A g = a i A_g=a_i Ag=ai将D分割为若干非空子集 D i D_i Di, 将 D i D_i Di中实例数最大的类作为标记,构建子节点, 由结点及其子结点构成树T, 返回T.
- 对第i个子结点, 以 D i D_i Di为训练集, 以A- A g {A_g} Ag为特征集, 递归调用(1)~(5), 得到子树 T i T_i Ti, 返回 T i T_i Ti
Cart 树
Cart树是二叉树,每次分裂产生两个子节点.
Cart 分类树
采用Gini指数选择最优特征, Gini指数反应样本集合的不确定性
Gini
(
p
)
=
∑
i
=
1
n
p
k
(
1
−
p
k
)
=
1
−
∑
k
=
1
K
p
k
2
\operatorname{Gini}(p)=\sum_{i=1}^{n} p_{k}\left(1-p_{k}\right)=1-\sum_{k=1}^{K} p_{k}^{2}
Gini(p)=i=1∑npk(1−pk)=1−k=1∑Kpk2
其中假设有k个类,
p
k
p_k
pk表样本点属于第k个类的概率.
在特征A的条件下,集合D的基尼指数定义为:
Gini
(
D
,
A
)
=
∣
D
1
∣
∣
D
∣
Gini
(
D
1
)
+
∣
D
2
∣
∣
D
∣
Gini
(
D
2
)
\operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right)
Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)
选取Gini指数最小的特征作为划分特征
CART回归树
思想: 将输入空间划分为M个单元(R1, R2, …,
R
M
R_M
RM), 并且在每个单元
R
m
R_m
Rm上有一个固定的输出值
c
m
c_m
cm
回归模型:
f
(
x
)
=
∑
m
=
1
M
c
m
I
(
x
∈
R
m
)
f(x)=\sum_{m=1}^{M} c_{m} I\left(x \in R_{m}\right)
f(x)=m=1∑McmI(x∈Rm)
训练误差:
∑
x
i
∈
R
m
(
y
i
−
f
(
x
i
)
)
2
\sum_{x_{i} \in R_{m}}\left(y_{i}-f\left(x_{i}\right)\right)^{2}
xi∈Rm∑(yi−f(xi))2
单元
R
m
R_m
Rm上的最优输出值
c
m
∗
c_m^*
cm∗
c
m
∗
=
ave
(
y
i
∣
x
i
∈
R
m
)
c_{m}^{*}=\operatorname{ave}\left(y_{i} \mid x_{i} \in R_{m}\right)
cm∗=ave(yi∣xi∈Rm)
空间划分
采用启发式,选择第j个变量
x
j
x^{j}
xj和它取值s, 作为切分变量和切分点,并定义两个区域
R
1
(
j
,
s
)
=
{
x
∣
x
(
j
)
≤
s
}
,
R
2
(
j
,
s
)
=
{
x
∣
x
(
j
)
≥
s
}
R_{1}(j, s)=\left\{x \mid x^{(j)} \leq s\right\}, \quad R_{2}(j, s)=\left\{x \mid x^{(j)} \geq s\right\}
R1(j,s)={x∣x(j)≤s},R2(j,s)={x∣x(j)≥s}
最优化切分点
min
j
,
s
[
min
c
1
∑
x
i
∈
R
1
(
j
,
s
)
(
y
i
−
c
1
)
2
+
min
c
2
∑
x
i
∈
R
2
(
j
,
s
)
(
y
i
−
c
2
)
2
]
\min _{j, s}\left[\min _{c_{1}} \sum_{x_{i} \in R_{1}(j, s)}\left(y_{i}-c_{1}\right)^{2}+\min _{c_{2}} \sum_{x_{i} \in R_{2}(j, s)}\left(y_{i}-c_{2}\right)^{2}\right]
j,smin⎣⎡c1minxi∈R1(j,s)∑(yi−c1)2+c2minxi∈R2(j,s)∑(yi−c2)2⎦⎤