周志华《机器学习》第五章——决策树(1)
信息熵
信息熵(information entropy)是信息论的基本概念。描述信息源各可能事件发生的不确定性。信息熵的表达式为:
E
n
t
(
D
)
=
−
∑
k
=
1
∣
y
∣
p
k
log
2
P
k
Ent(D)=-\sum_{k=1}^{|y|}pk\log_{2}{Pk}
Ent(D)=−k=1∑∣y∣pklog2Pk
记住一个定理,那就是均匀分布的信息熵最大,因为均匀分布所包含的信息最少,不确定因素最高,所以均匀分布的信息熵,而Ent(D) 的值越小,则的纯度越高,所包含的信息最多。
至于信息熵的为啥是log2,因为信息熵的底层源自通信,而在通信当中2代表着高低电压,是传输信号最经典的模式。
信息增益
在得知信息前后,通过计算出信息熵的差额,即为这次信息所传递的信息量,将其命名为信息增益。例如有4个选项,ABCD他们都是等概率1/4的,通过计算他们的信息熵为:
E
n
t
(
D
1
)
=
log
2
4
=
2
Ent(D1)=\log_{2}{4}=2
Ent(D1)=log24=2
当得知A的概率为1/6,B的概率为1/2,C的概率为1/6,D的概率为1/6时,所计算出的信息熵为:
E
n
t
(
D
2
)
=
1
6
l
o
g
2
6
+
1
6
l
o
g
2
6
+
1
6
l
o
g
2
6
+
1
2
l
o
g
2
2
=
1.79
Ent(D2)=\frac{1}{6} log_{2}{6}+\frac{1}{6} log_{2}{6}+\frac{1}{6} log_{2}{6}+\frac{1}{2} log_{2}{2}=1.79
Ent(D2)=61log26+61log26+61log26+21log22=1.79
那么信息增益为:
G
a
i
n
(
D
α
)
=
E
n
t
(
D
1
)
−
E
n
t
(
D
2
)
=
2
−
1.79
=
0.21
Gain(D α)=Ent(D1)-Ent(D2)=2-1.79=0.21
Gain(Dα)=Ent(D1)−Ent(D2)=2−1.79=0.21
由此所算出来的信息增益为0.21。
一般而言,信息增益越大,则意味着使周属性 来进行划分所获得的"纯度提升"越大。因此,我们可用信息增益来进行决策树的划分属性选择,著名的 ID3 决策树学习算法,就是以信息增益为准则来选择划分属性。
ID3算法
在表4.1中有1-17个编号的西瓜数据集,我们选取是否为好瓜作为根节点,其中有1-8为好瓜,9-17为坏瓜。计算出其信息增益为:
随后我们选取我们要计算出当前属性集合{色泽,根蒂,敲声,纹理,脐部,触感}中每个属性的信息增益。以属性"色泽"为例,它有个可能的取值: {青绿,乌黑,浅自}.若使用该属性对 进行划分,则可得到 个子集,分别记为: D 1泽=青绿), D2 (色泽 乌黑), D3 色泽=浅白)。
最后我们去计算出他的信息增益:
类似的我们可以去计算出所有特征的信息增益:
- Gain(D ,根蒂) = 0.143; Gain(D ,敲声) = 0.141;
- Gain(D ,纹理) = 0.381; Gain(D ,脐部) = 0.289;
- Gai (D ,触感) = 0.006.
我们通过从所有特征当中去选取信息增益最大的特征作为下一个划分的依据,其中问你的信息增益最大,我们选取纹理为划分特征,然后以纹理为根节点,去计算出以其他特征为划分的信息熵,再去计算出个特征的信息增益,再去选取最大的信息增益的特征进行划分,如此往复和递归,完成决策树的构建。
信息增益率与C4.5
信息增益率
信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,著名的 C4.5 决策树算法 [Quinlan 1993J 不直接使用信息增益,而是使用"增益率" (gain ratio) 来选择最优划分属性.采用信息增率,增益率定义为:
计算信息增益率
我们以色泽为例计算出他的信息增益率:
- 首先计算信息增益:
- 再计算IV(a):
I V ( a ) = 6 17 log 2 17 6 + 6 17 log 2 17 6 + 5 17 log 2 17 5 IV(a)=\frac{6}{17} \log _{2}{\frac{17}{6} }+\frac{6}{17}\log _{2}{\frac{17}{6} } +\frac{5}{17}\log _{2}{\frac{17}{5} } IV(a)=176log2617+176log2617+175log2517
- 最后计算信息增益率:
a称为属性的"固有值" (intrinsic value) [Quinlan, 1993]。属性的可能取值数目越多(即 越大),则 IV(α) 的值通常会越大。例如,对表 4.1 的西瓜数据集 2.0 ,有 IV(触感) = 0.874 (V = 2), IV(色泽) = 1.580 (V = 3), IV(编号) = 4.088 (V = 17).。因为IV(a)会随着分叉的数目的增加而增加,而IV(a)又是信息增益率的分母,所以信息增益率可以很好地解决决策树偏爱与喜欢多分支的情况。
C4.5算法
增益率准则对可取值数目较少的属性有所偏好?因此 C4.5 算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式,先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。