决策树
- 决策树损失函数通常是正则化的极大似然函数
信息增益的算法
输入:训练数据集
D
D
D 和特征
A
A
A;
输出: 特征
A
A
A 对训练数据集
D
D
D 的信息增益
g
(
D
,
A
)
g(D, A)
g(D,A) 。
设有
K
K
K 个类
C
k
C_{k}
Ck,
∣
C
k
∣
\left|C_{k}\right|
∣Ck∣ 为属于类
C
k
C_{k}
Ck 的样本个数
根据特征
A
A
A 的取值将
D
D
D 划分为
n
n
n 个子集
D
1
,
D
2
,
⋯
D_{1}, D_{2}, \cdots
D1,D2,⋯
D
i
k
=
D
i
∩
C
k
D_{i k}=D_{i} \cap C_{k}
Dik=Di∩Ck
(1) 计算数据集 D D D 的经验熵 H ( D ) H(D) H(D)
即将数据集
D
D
D 划分为
K
K
K个类之后的不确定性
H
(
D
)
=
−
∑
k
=
1
K
∣
C
k
∣
∣
D
∣
log
2
∣
C
k
∣
∣
D
∣
H(D)=-\sum_{k=1}^{K} \frac{\left|C_{k}\right|}{|D|} \log _{2} \frac{\left|C_{k}\right|}{|D|}
H(D)=−k=1∑K∣D∣∣Ck∣log2∣D∣∣Ck∣
(2) 计算特征
A
A
A 对数据集
D
D
D 的经验条件熵
H
(
D
∣
A
)
H(D \mid A)
H(D∣A)
即
A
A
A 将数据集
D
D
D 划分为
n
n
n个子集之后的不确定性
H
(
D
∣
A
)
=
∑
i
=
1
n
∣
D
i
∣
∣
D
∣
H
(
D
i
)
=
−
∑
i
=
1
n
∣
D
i
∣
∣
D
∣
∑
k
=
1
K
∣
D
i
k
∣
∣
D
i
∣
log
2
∣
D
i
k
∣
∣
D
i
∣
H(D \mid A)=\sum_{i=1}^{n} \frac{\left|D_{i}\right|}{|D|} H\left(D_{i}\right)=-\sum_{i=1}^{n} \frac{\left|D_{i}\right|}{|D|} \sum_{k=1}^{K} \frac{\left|D_{i k}\right|}{\left|D_{i}\right|} \log _{2} \frac{\left|D_{i k}\right|}{\left|D_{i}\right|}
H(D∣A)=i=1∑n∣D∣∣Di∣H(Di)=−i=1∑n∣D∣∣Di∣k=1∑K∣Di∣∣Dik∣log2∣Di∣∣Dik∣
(3)计算信息增益(不确定性减少的程度)
g
(
D
,
A
)
=
H
(
D
)
−
H
(
D
∣
A
)
g(D, A)=H(D)-H(D \mid A)
g(D,A)=H(D)−H(D∣A)
不同的$ A$有不同的信息增益,挑个最大的,信息增益大的代表分类能力强
信息增益比
定义
5.3
5.3
5.3 (信息增益比) 特征
A
A
A 对训练数据集
D
D
D 的信息增益比
g
R
(
D
,
A
)
g_{R}(D, A)
gR(D,A) 定义 为其信息增益
g
(
D
,
A
)
g(D, A)
g(D,A) 与训练数据集
D
D
D 关于特征
A
A
A 的值的嫡
H
A
(
D
)
H_{A}(D)
HA(D) 之比, 即
信
息
增
益
比
=
g
R
(
D
,
A
)
=
g
(
D
,
A
)
H
A
(
D
)
=
H
(
D
)
−
H
(
D
∣
A
)
H
A
(
D
)
=
H
(
D
)
−
H
(
D
∣
A
)
−
∑
i
=
1
n
∣
D
i
∣
∣
D
∣
log
2
∣
D
i
∣
∣
D
∣
=
原
始
分
类
不
确
定
性
−
分
类
经
过
A
划
分
之
后
的
不
确
定
性
A
划
分
之
后
的
不
确
定
性
信息增益比=g_{R}(D, A)=\frac{g(D, A)}{H_{A}(D)}=\frac{H(D)-H(D \mid A)}{H_{A}(D)}=\frac{H(D)-H(D \mid A)}{-\sum_{i=1}^{n} \frac{\left|D_{i}\right|}{|D|} \log _{2} \frac{\left|D_{i}\right|}{|D|}}\\ =\frac{原始分类不确定性-分类经过A划分之后的不确定性}{A划分之后的不确定性}
信息增益比=gR(D,A)=HA(D)g(D,A)=HA(D)H(D)−H(D∣A)=−∑i=1n∣D∣∣Di∣log2∣D∣∣Di∣H(D)−H(D∣A)=A划分之后的不确定性原始分类不确定性−分类经过A划分之后的不确定性
其中,
H
A
(
D
)
=
−
∑
i
=
1
n
∣
D
i
∣
∣
D
∣
log
2
∣
D
i
∣
∣
D
∣
,
n
H_{A}(D)=-\sum_{i=1}^{n} \frac{\left|D_{i}\right|}{|D|} \log _{2} \frac{\left|D_{i}\right|}{|D|}, n
HA(D)=−∑i=1n∣D∣∣Di∣log2∣D∣∣Di∣,n 是特征
A
A
A 取值的个数。
信息增益比本质是在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。
惩罚参数:数据集D以特征A作为随机变量的熵的倒数,即:将特征A取值相同的样本划分到同一个子集中(之前所说数据集的熵是依据类别进行划分的)
惩罚参数 = 1 H A ( D ) = 1 − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ lng 2 ∣ D i ∣ ∣ D ∣ =\frac{1}{H_{A}(D)}=\frac{1}{-\sum_{i=1}^{n} \frac{\left|D_{i}\right|}{|D|} \operatorname{lng}_{2} \frac{\left|D_{i}\right|}{|D|}} =HA(D)1=−∑i=1n∣D∣∣Di∣lng2∣D∣∣Di∣1
缺点:信息增益比偏向取值较少的特征
原因: 当特征取值较少时
H
A
(
D
)
HA(D)
HA(D)的值较小,因此其倒数较大,因而信息增益比较大。因而偏向取值较少的特征。
使用信息增益比:基于以上缺点,并不是直接选择信息增益率最大的特征,而是现在候选特征中找出信息增益高于平均水平的特征,然后在这些特征中再选择信息增益率最高的特征。
ID3算法
在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。
具体方法是:从根结点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点;再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止。最后得到一棵决策树。ID3相当于用极大似然法进行概率模型的选择。
C4.5 的生成算法
将ID3算法中的信息增益换为信息增益比
剪枝
决策树的剪枝往往通过极小化决策树整体的损失函数(loss function)或代价函数 (cost function) 来实现。设树
T
T
T 的叶结点个数为
∣
T
∣
,
t
|T|, t
∣T∣,t 是树
T
T
T 的叶结点, 该叶结点有
N
t
N_{t}
Nt 个样本点, 其中
k
k
k 类的样本点有
N
t
k
N_{t k}
Ntk 个,
k
=
1
,
2
,
⋯
,
K
,
H
t
(
T
)
k=1,2, \cdots, K, H_{t}(T)
k=1,2,⋯,K,Ht(T) 为叶结点
t
t
t 上的经验嫡,
α
⩾
0
\alpha \geqslant 0
α⩾0 为参数, 则决策树学习的损失函数可以定义为
C
α
(
T
)
=
∑
t
=
1
∣
T
∣
N
t
H
t
(
T
)
+
α
∣
T
∣
C_{\alpha}(T)=\sum_{t=1}^{|T|} N_{t} H_{t}(T)+\alpha|T|
Cα(T)=t=1∑∣T∣NtHt(T)+α∣T∣
其中经验熵为
H
t
(
T
)
=
−
∑
k
N
t
k
N
t
log
N
t
k
N
t
H_{t}(T)=-\sum_{k} \frac{N_{t k}}{N_{t}} \log \frac{N_{t k}}{N_{t}}
Ht(T)=−k∑NtNtklogNtNtk
在损失函数中, 将式
C
α
(
T
)
=
∑
t
=
1
∣
T
∣
N
t
H
t
(
T
)
+
α
∣
T
∣
C_{\alpha}(T)=\sum_{t=1}^{|T|} N_{t} H_{t}(T)+\alpha|T|
Cα(T)=∑t=1∣T∣NtHt(T)+α∣T∣右端的第 1 项记作
C
(
T
)
=
∑
t
=
1
∣
T
∣
N
t
H
t
(
T
)
=
−
∑
t
=
1
∣
T
∣
∑
k
=
1
K
N
t
k
log
N
t
k
N
t
C(T)=\sum_{t=1}^{|T|} N_{t} H_{t}(T)=-\sum_{t=1}^{|T|} \sum_{k=1}^{K} N_{t k} \log \frac{N_{t k}}{N_{t}}
C(T)=t=1∑∣T∣NtHt(T)=−t=1∑∣T∣k=1∑KNtklogNtNtk
这时有
C
α
(
T
)
=
C
(
T
)
+
α
∣
T
∣
C_{\alpha}(T)=C(T)+\alpha|T|
Cα(T)=C(T)+α∣T∣
C
(
T
)
C(T)
C(T) 表示模型与训练数据的拟合程度,
∣
T
∣
|T|
∣T∣ 表示模型复杂度, 参数
α
⩾
0
\alpha \geqslant 0
α⩾0 控制两者之间的影响。
CART算法
分类与回归树(classification and regression tree, CART)模型, 是应用广泛的决策树学习方法。CART 同样由特征选择、树的生成及剪枝组成, 既可以用于分类也可以用于回归。