目录
1.概述
决策树算法主要有两个关键点:
(1).划分依据
当前节点应该用样本的哪个特征进行分裂。
(2)分配准则
子节点中应该包含哪些样本。
2.ID3算法
(1)信息增益
信息增益又叫互信息,它衡量了已知一个变量的情况下,另一个变量不确定性减少的程度:
I
(
X
,
Y
)
=
−
∑
X
,
Y
P
(
X
,
Y
)
log
P
(
X
,
Y
)
P
(
X
)
P
(
Y
)
=
H
(
X
)
−
H
(
X
∣
Y
)
=
H
(
Y
)
−
H
(
Y
∣
X
)
\begin{aligned} I(X,Y)&=-\sum_{X,Y}P(X,Y)\log\frac{P(X,Y)}{P(X)P(Y)}\\ &= H(X)-H(X|Y)\\ &=H(Y)-H(Y|X) \end{aligned}
I(X,Y)=−X,Y∑P(X,Y)logP(X)P(Y)P(X,Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X)
(2)ID3算法的流程
ID3算法选择信息增益最大的特征,作为当前节点的分裂依据,具体地说:
a.计算样本集
D
D
D的信息熵:
H
(
D
)
=
−
∑
C
i
∈
C
P
(
C
i
)
log
P
(
C
i
)
=
−
∑
C
i
∈
C
∣
C
i
∣
∣
D
∣
log
∣
C
i
∣
∣
D
∣
\begin{aligned} H(D)&=-\sum_{C_{i}\in C}P(C_{i})\log P(C_{i}) \\ &= -\sum_{C_{i}\in C}\frac{|C_{i}|}{|D|}\log\frac{|C_{i}|}{|D|} \end{aligned}
H(D)=−Ci∈C∑P(Ci)logP(Ci)=−Ci∈C∑∣D∣∣Ci∣log∣D∣∣Ci∣
其中,
D
D
D为样本集,
∣
D
∣
|D|
∣D∣是样本总数;
C
C
C为类别集,
C
i
C_{i}
Ci为类别为
C
i
C_{i}
Ci的样本集,
∣
C
i
∣
|C_{i}|
∣Ci∣为该类别样本数。
b.计算样本集
D
D
D在特征
A
A
A下的条件熵:
H
(
D
∣
A
)
=
−
∑
A
i
∈
A
∣
A
i
∣
∣
D
∣
∑
A
i
j
∈
A
i
∣
A
i
j
∣
∣
A
i
∣
log
∣
A
i
j
∣
∣
A
i
∣
H(D|A)=-\sum_{A_{i}\in A}\frac{|A_{i}|}{|D|}\sum_{A_{ij}\in A_{i}}\frac{|A_{ij}|}{|A_{i}|}\log \frac{|A_{ij}|}{|A_{i}|}
H(D∣A)=−Ai∈A∑∣D∣∣Ai∣Aij∈Ai∑∣Ai∣∣Aij∣log∣Ai∣∣Aij∣
其中,
A
i
A_{i}
Ai为特征
A
A
A的不同取值,
A
i
j
A_{ij}
Aij为取值为
A
i
A_{i}
Ai的样本的不同类别。
c.计算信息增益:
I
(
D
,
A
)
=
H
(
D
)
−
H
(
D
∣
A
)
I(D,A)=H(D)-H(D|A)
I(D,A)=H(D)−H(D∣A)
d.计算样本集的所有特征的信息增益,选择增益最大的特征作为分裂依据;被分裂的特征有
n
n
n个取值,则将样本根据特征的取值划分到
n
n
n个子节点中。重复以上过程直到最后一个特征。
(3)ID3算法的不足
a.当特征为连续值时,无法处理。
b.取值较多的特征信息增益比较大。
c.无法处理缺失值。
d.无法处理过拟合问题。
3.C4.5算法
针对ID3算法的不足,C4.5算法做了以下改进。
(1)处理连续值
在处理连续值时,C4.5将连续特征离散化,具体做法为:
数据集
D
D
D的特征
A
A
A有
m
m
m个取值,从小到大排列为:
(
A
1
,
A
2
,
A
3
,
.
.
.
,
A
m
)
(A_{1},A_{2},A_{3},...,A_{m})
(A1,A2,A3,...,Am)
划分
m
−
1
m-1
m−1个取值点:
(
T
1
,
T
2
,
T
3
,
.
.
.
,
T
m
−
1
)
(T_{1},T_{2},T_{3},...,T_{m-1})
(T1,T2,T3,...,Tm−1)
其中:
T
i
=
A
i
+
A
i
+
1
2
T_{i}=\frac{A_{i}+A_{i+1}}{2}
Ti=2Ai+Ai+1
将特征值小于
T
i
T_{i}
Ti的样本划分到左样本集
D
T
−
D_{T}^{-}
DT−,特征值大于
T
i
T_{i}
Ti的样本划分到右样本集
D
T
+
D_{T}^{+}
DT+,计算其作为二元离散值时的增益比,参与所有特征最大增益比的选择。
需要注意的是,特征
A
A
A的某一个划分点在本轮分裂时被选择为分裂点,在下一轮特征选择时,特征
A
A
A的其余的其余划分点会继续参与选择,知道所有划分点选择完毕。
(2)信息增益比
为了解决取值较多的特征信息增益比较大的问题,C4.5将特征选择标准从信息增益改成了信息增益比:
I
R
(
D
,
A
)
=
I
(
D
,
A
)
H
A
(
D
)
I_{R}(D,A)=\frac{I(D,A)}{H_{A}(D)}
IR(D,A)=HA(D)I(D,A)
其中:
H
A
(
D
)
=
∑
A
i
∈
A
∣
A
i
∣
∣
D
∣
log
∣
A
i
∣
∣
D
∣
H_{A}(D)=\sum_{A_{i}\in A}\frac{|A_{i}|}{|D|}\log \frac{|A_{i}|}{|D|}
HA(D)=Ai∈A∑∣D∣∣Ai∣log∣D∣∣Ai∣
从而使特征较多的信息增益获得相应缩放。
(3)缺失值的处理
缺失值的处理主要面临以下两个问题:
a.选择划分特征时缺失值的处理
对每个样本设置一个权重,样本根据是否有特征
A
A
A分为两部分。例如,
D
1
D_{1}
D1为含有特征
A
A
A的样本集,
D
2
D_{2}
D2为不含特征
A
A
A的样本集,赋予它们权值。将加权的
D
2
D_{2}
D2数量与加权总样本的比例作为一个系数,乘以
D
1
D_{1}
D1的加权增益信息比。
b.划分样本时怎么处理在该特征上有缺失的样本
将缺失特征的样本同时划入所有子节点,根据子节点的样本数量,重新调整缺失特征的样本的系数。
(4)正则化剪枝
a.先剪枝:在生成决策树的过程中,分别计算节点分裂前和分裂后的精度,选择精度较高的方案。
b.后剪枝:决策树生成后,自下向上的去除非子节点,然后计算去除前后的精度,选择精度较高的方案。
(5)C4.5的不足
a.C4.5和ID3算法一样,生成的都是多叉树,效率不如二叉树。
b.只能处理分类,不能处理回归问题。
c.熵的计算需要耗费大量的计算资源。