1、基本定义
最近看西瓜书,看到第四章决策树,在对样本的属性进行划分选择的时候用到了信息增益,其中包含了 信息熵(information entropy) 和 信息增益(information gain) 两个概念,由于没学过信息论这门课,然后在知乎上看到的DerisWeng博士的一个扫盲视频还有哈工大博士在知乎上的答贴,讲的挺好,结合自己的理解阐述一下。
信息熵
当某种事情有多种微观态的条件下,这件事情(宏观态)对某人(观察者)而言具体是哪种情况(微观态)的不确定性叫做熵(entropy)。
信息
能够消除改任对这件事情(宏观态)不确定性的事物叫做信息(information)。
熵和信息数量相等,意义相反,获取信息意味着消除不确定性(熵)。熵在所有情况都是等概率情况下最大,在对应的决策树分支纯度最大时,也就是分支节点所包含的样本均为同一类别时,取得最小值0。
有:消除熵=获取信息;噪音是信息获取的干扰;数据=信息+噪音,需要用知识进行分离。
2、信息是如何量化的
物理量是具有单位的,信息也是物理量。信息消除的是不确定性,那么选择另一事件的不确定性作为参照。一般选择参照事件为抛硬币,即只有两种等概率情况的事件,这是测得的信息量的单位就称为比特(bit)。
注意到,抛掷硬币的次数 n n n与所得等概率结果的数量 m m m并不是线性关系,而是指数关系,即 m = 2 n m = 2^n m=2n,则有 n = l o g 2 m n = log_2m n=log2m。上述式子成立的前提是被测事件的所有可能情况是等概率的。
当被测事件的所有可能情况非等概率时,则须将每种情况的信息量计算出来之后再相加。
对于情况A而言,计算其信息量,但此时并不知道其等价多少种小概率的等概情况之和,则假设被测事件可分为 1 最 小 概 率 位 \frac{1}{最小概率位} 最小概率位1个等概情况,则用概率的倒数 1 p A \frac{1}{p_A} pA1 来替换等概率情况 m A m_A mA,即 E n t ( A ) = p k l o g 2 1 p k Ent(A)=p_klog_2\frac{1}{p_k} Ent(A)=pklog2pk1同样方法计算各类情况对应的信息量 E n t ( B ) , E n t ( C ) . . . Ent(B),Ent(C)... Ent(B),Ent(C)...
3、信息量\熵的定义式:
根据以上量化方法,则可以推出信息量\熵定义式
H
(
X
)
=
∑
i
=
1
n
p
(
x
i
)
l
o
g
2
1
p
(
x
i
)
=
−
∑
i
=
1
n
p
(
x
i
)
l
o
g
2
p
(
x
i
)
H(X)=\sum_{i=1}^{n}p(x_i)log_2\frac{1}{p(x_i)}=-\sum_{i=1}^{n}p(x_i)log_2p(x_i)
H(X)=i=1∑np(xi)log2p(xi)1=−i=1∑np(xi)log2p(xi)
由定义式可以看出信息熵是考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。
与西瓜书中的对信息熵的定义比较,形式一致:
E
n
t
(
D
)
=
∑
k
=
1
∣
y
∣
p
k
l
o
g
2
1
p
k
=
−
∑
k
=
1
∣
y
∣
p
k
l
o
g
2
p
k
Ent(D)=\sum_{k=1}^{|y|}p_klog_2\frac{1}{p_k}=-\sum_{k=1}^{|y|}p_klog_2p_k
Ent(D)=k=1∑∣y∣pklog2pk1=−k=1∑∣y∣pklog2pk
其中
k
k
k 为样本的某种类型,且样本共有
y
y
y 种类型。且Ent(D)的最小值为0,最大值为
l
o
g
2
∣
y
∣
log_2|y|
log2∣y∣,对应所有情况等概条件下,与预想的不确定性越大,熵越大一致(证明见南瓜书)。
4、条件熵
说到信息增益,那么需要先了解一下条件信息熵,也就是条件熵。其定义为:在X给定条件下,Y的条件概率分布的熵对X的数学期望。
假设有随机变量(X,Y),其联合概率分布为
p
(
X
=
x
i
,
Y
=
y
i
)
=
p
i
j
,
i
=
1
,
2
,
.
.
.
,
n
,
j
=
1
,
2
,
.
.
.
,
m
p(X=x_i,Y=y_i)=p_{ij},\quad i=1,2,...,n,j=1,2,...,m
p(X=xi,Y=yi)=pij,i=1,2,...,n,j=1,2,...,m
条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X) 表示在已知随机变量X的条件下随机变量Y的不确定性。
条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X) 的公式推导如下(
x
x
x 和
y
y
y 相互独立):
H
(
Y
∣
X
)
=
∑
x
∈
X
p
(
x
)
H
(
Y
∣
X
=
x
)
=
−
∑
x
∈
X
p
(
x
)
∑
y
∈
Y
p
(
y
∣
x
)
l
o
g
p
(
y
∣
x
)
=
−
∑
x
∈
X
∑
y
∈
Y
p
(
x
,
y
)
l
o
g
(
y
∣
x
)
H(Y|X) = \sum_{x \in X}^{}p(x)H(Y|X=x) \\ = - \sum_{x \in X}^{}p(x) \sum_{y \in Y}^{}p(y|x)logp(y|x) \\ = - \sum_{x \in X}^{} \sum_{y \in Y}^{} p(x,y)log(y|x)
H(Y∣X)=x∈X∑p(x)H(Y∣X=x)=−x∈X∑p(x)y∈Y∑p(y∣x)logp(y∣x)=−x∈X∑y∈Y∑p(x,y)log(y∣x)
由定义式可以看出条件熵意思是按一个新的变量的每个值对原变量进行分类,比如哈工大大佬的举例:嫁与不嫁按帅,不帅分成俩类。然后与信息熵求法一样,在每一个小类里面,都计算一个小熵,然后每一个小熵乘以各个类别的概率,然后求和。
用另一个变量对原变量进行分类后,计算得到的关于原变量的条件熵相比信息熵减小了,也就是不确定性就会减小了,因为新增了X的信息的缘故。不确定程度减少的量就是信息增益。
对于西瓜书中的特征选取,若按照某一属性a对样本集进行再划分,则其条件熵为:
E
n
t
_
c
o
n
d
i
t
i
o
n
(
D
)
=
−
∑
v
=
1
∣
V
∣
∣
D
v
∣
∣
D
∣
E
n
t
(
D
v
)
Ent\_condition(D)=- \sum_{v=1}^{|V|} \frac{|D^v|}{|D|}Ent(D^v)
Ent_condition(D)=−v=1∑∣V∣∣D∣∣Dv∣Ent(Dv)
其中属性
a
a
a共有
V
V
V种取值,第
v
v
v个分支包含样本集
D
D
D中所有在属性
a
a
a上取值为
a
v
a^v
av的样本,记为
D
v
D^v
Dv。则对于第
v
v
v个分支而言,其概率或权重为
∣
D
v
∣
∣
D
∣
\frac{|D^v|}{|D|}
∣D∣∣Dv∣。可见与上述公式实质上是相同的,只是形式上有所区分。
5、信息增益
在决策树算法的学习过程中,信息增益是特征选择的一个重要指标,它定义为一个特征能够为分类系统带来多少信息,带来的信息越多,说明该特征越重要,相应的信息增益也就越大。
由西瓜书所给的公式(4.2):
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{|D^v|}{|D|}Ent(D^v)
Gain(D,a)=Ent(D)−v=1∑∣V∣∣D∣∣Dv∣Ent(Dv)
简化表示就是:信息增益 = 信息熵 - 条件熵
换句话说,信息增益代表了在一个条件下,信息复杂度(不确定性)减少的程度。在决策树算法中,关键就是每次选择一个特征,特征有多个,那么到底选择哪个特征作为划分特征,就可以用信息增益这一度量作为标准来进行选择。
如果选择一个特征后,信息增益最大(信息不确定性减少的程度最大),那么我们就选取这个特征。与书本上所说“一般而言,信息增益越大,则意味着使用属性 a a a来进行划分所获得的‘纯度提升’越大 ”是一致的。
以上就是我对信息熵以及信息增益的认识,和对西瓜书中4.2节划分选择的理解。如有错误,恳请指出!