信息熵
定义
Entrophy:
sum([p*log(1/p) for each p])
p: 一次实验的, x的发生的次数的期望是 p
1/p : x发生一次, 期望要做的试验次数是 1/p
例子
1.掷硬币
在该模型下,p = 1/2 。一次实验的, x的发生的次数的期望是 1/2,x发生一次,期望要做的试验次数是 2 因此,由上述可知:
log(1/p)=log(2)= 1
p*log(1/p)=1/2 * log(2) = 1/2
2.摸球
4个球 1个红球 2个绿球 1个黑球
红球的概率 1/4
绿球 2/4=1/2
黑球 1/4
显然
1/4 * log(4) = 1/2
1/2 * 1 = 1/2
1/4 * 2 = 1/2
相对熵 (KL散度)
KL散度是两个概率分布P和Q差别的非对称性的度量。 KL散度是用来 度量使用基于Q的编码来编码来自P的样本平均所需的额外的比特个数。典型情况下,P表示数据的真实概率分布,Q表示数据的理论概率分布
,模型分布,或P的近似分布。
D(Q||P)=∑Q(x)[log(1/P(x))] - ∑Q(x)[log[1/Q(x)]]
=∑Q(x)log[Q(x)/P(x)]
其中 ∑Q(x)[log(1/P(x))]
表示使用原来的编码方式得到的比特数的期望,log(1/P(x))
表示使用原来的编码方式,x出现1次的期望编码长度 Q(x) 表示现在x出现的概率
由于-log(u)是凸函数,因此有下面的不等式
DKL(Q||P) = -∑x∈XQ(x)log[P(x)/Q(x)] = E[-logP(x)/Q(x)] ≥ -logE[P(x)/Q(x)]
= -log∑x∈XQ(x)P(x)/Q(x)
= 0
即KL-divergence
始终是大于等于0的。当且仅当两分布相同时,KL-divergence
等于0。
例子
比如有四个类别,一个方法A得到四个类别的理论概分布Q为:0.1,0.2,0.3,0.4
,真实概率分布P为0.4,0.3,0.2,0.1
,那么这两个分布的KL-Distance(A,B)
为:
KL-Distance(A,B)=0.1*log(0.1/0.4)+0.2*log(0.2/0.3)+0.3*log(0.3/0.2)+0.4*log(0.4/0.1)
这个里面有正的,有负的,可以证明KL-Distance()>=0.从上面可以看出,KL散度是不对称的。即
$$KL-Distance(A,B)!=KL-Distance(B,A)$$
如果希望把它变对称
$$Ds(p1, p2) = [ D (p1, p2) + D (p2, p1) ] / 2$$
条件熵
条件熵是信息论中信息熵的一种度量,它表示如果已经完全知道第二个随机变量 X 的前提下,随机变量 Y 的信息熵还有多少。也就是 基于 X 的 Y 的信息熵,用 H(Y|X) 表示。同其它的信息熵一样,条件熵也用比特、奈特等信息单位表示。具体有针对一个确定的Xj 的条件熵,如果是针对一个随机变量而言,条件熵是针对所有Xj的条件熵的期望
补充信息
推导公式
H(Y|X)=Σx∈Ωp(x)H(Y|X=x)
= Σx∈Ωp(x)(-Σ y∈Ψp(y|x)log2p(y|x))
=-Σx∈Ω Σ y∈Ψp(y|x)p(x)log2p(y|x)
= -Σx∈Ω Σ y∈Ψp(x,y)log2p(y|x)
信息
信息是通过熵与条件熵的差计量的:
掷一次骰子,由于六种结局(点)的出现概率相等,所以结局的不确定程度(熵)为log6 ,如果告诉你掷骰子的结局是单数或者双数,这显然是一个信息。这个信息消除了我们的一些不确定性。把消除的不确定性称为信息显然是妥当的。
如果令公式中的y=x,H(x∣y)变成了H(x∣x),其含义当然是x已知时x的条件熵,可是x 已知时它自己当然没有不确定性了。把它带入信息公式,得到
H(x∣x)=0
信息量I=(x的不确定性)- (得到了消息y以后x的不确定性)
I(x,y) = H(x)-H(x|y=x)=H(X)
也就是说条件Y已知时所带来的信息恰好消除了原来的不确定性。换句话说,获得的信息量等于产生不确定性的信息量。正是在一些场合下把熵直接称为信息的原因,而引出了信息是熵或者信息是负的熵的错误概念。
如果H(x)=H(x|y),则x,y相互独立,即x,y之间互不影响,那么信息量为零。
上图说明了变量y含有的关于变量x的信息与变量x含有的关于变量y的信息是相同的。
即变量之间含有的信息是对称的.需要注意的是,图中的关系为熵H,不是概率P。
信息增益
信息量是通过熵与条件熵的差计量的
熵 - 条件熵:
IG(T,C) = H(T)-H(T|C)
推导公式:
在信息增益中,重要性的衡量标准就是看特征能够为分类系统带来多少信息,带来的信息越多,该特征越重要。
缺点
由公式可知,该方法在计算概率时会产生一个问题,
例如P(Ci),表示类别Ci出现的概率,要用1除以类别总数。
即只能考察特征对整个系统的贡献,而不能具体到某个类别上,这就使得信息增益只适合用来做所谓“全局”的特征选择(指所有的类都使用相同的特征集合),而无法做“局部”的特征选择(每个类别有自己的特征集合,因为有的词,对这个类别很有区分度,对另一个类别则无足轻重)。
互信息
参考【1】
互信息(Mutual Information)是一有用的信息度量,它是指两个事件集合之间的相关性。
一般而言,信道中总是存在着噪声和干扰,信源发出消息x,通过信道后信宿只可能收到由于干扰作用引起的某种变形的y。信宿收到y后推测信源发出x的概率,这一过程可由后验概率p(x|y)来描述。相应地,信源发出x的概率p(x)称为先验概率。两个事件X和Y的互信息定义为:
x的后验概率与先验概率比值的对数为y对x的互信息量,也称交互信息量(简称互信息)
公式:
MI(x,y) = log( P(x,y)/P(x)P(y) )
注意`H()表示熵的计算公式。不是概率论中的公式`。
互信息也应用于统计语言模型,对于类别 c 和词条 t,它们之间的互信息定义为:
这是单个类别的互信息公式,将互信息应用于多个类别,有两种常用的方法:设为目标空间的类的集合,则 平均和最大互信息公式分别为
其意义:表示事件A发生与事件B发生相关联而提供的信息量。该方法通过计算词条(Term)和类别(Class)的互信息,词条和类别的互信息越大,词条越能代表该种类别。其中词条和类别的互信息通过公式,这个和信息增益也有关系,具体见 综合 部分.
在某个类别C中词条T出现概率高,而在其它类别中出现的概率低,则该词条T将获得较高互信息,也就可能被选取为类别C的特征。互信息是一种信息量,用于词条T的存在能否正确判断出类别C。
词条和类别的互信息体现了词条和类别的相关程度,互信息越大,词条和类别的相关程度也越大。得到词条和类别之间的相关程度后,选取一定比例的,排名靠前的词条作为最能代表此种类别的特征。
举例
互信息I (X; Y) 是在知道了Y 的值后X 的不确定性的减少量。即,Y 的值透露了多少关于X 的信息量。
比如计算两个词的搭配
I(伟大,祖国)=log2p(伟大,祖国)/(p(伟大)p(祖国))
此值较高,说明“伟大”和“祖国”是一个比较强的搭配
I(的,祖国)=log2p(的,祖国)/(p(的)p(祖国))
此值较低,因为p(的)太高,“的”和“祖国”不是一个稳定的搭配
另外一个例子
k1 k2 k3 dk1 dk2 dk3 dc
c1 10 30 0 5 20 0 100
c2 0 20 50 0 10 15 120
c3 10 40 80 1 20 60 150
如表所示,其中ci表示类别;kj表示类中术语;dkn表示出现术语kj的文章的个数,这些文章是属于每个类的;dc表示每个类包含的文章数。
用单个类别互信息公式计算K1与C1的互信息:
P(k1|c1) = 10/(10+30+0) = 1/4
P(k1) = (10+10)/(10+30+0+0+20+50+10+40+80) = 1/12
MI(k1,c1) = logP(k1,c1)/P(k1)P(c1)
= logP(k1|c1)/P(k1)
= log (1/4)/(1/12)
= log 3
用多个类别互信息公式计算k1与ci的互信息,假设每个类出现k1概率相等,现有3个类,故P(ci) = 1/3
MI(k1) = P(c1)logP(k1|c1)/P(k1)+ P(c2)logP(k1|c2)/P(k1)+P(c3)logP(k1|c3)/P(k1)
= 1/3[log3+0+log(12/13)]
这里存在两个问题
(1)k1未出现在C2,那么它的条件概率值为0,在log中是不允许为0的。
(2)k1与c3的互信息为负值
缺点
未使用高频词和利用类别信息.
(1)传统的互信息特征选择方法受边缘概率的影响较大,可能产生稀有词的概率评估分高于常用词的评估 分,从而导致倾向于选择低频词条的现象。
(2)当出现评估分数相同的情况,但对每个特征的排序有先后之别,对他们的取舍是没有理论依据的,可能造成结果的不理想。
自信息
参考【2】
自信息(英语:self-information),又译为信息本体,由克劳德·香农提出,用来衡量单一事件发生时所包含的信息量多寡。它的单位是bit,或是nats。
特征选择:
决策树:特征t能产生的信息增益 = 熵 - t对应的条件熵
Xj -> X, 这里j只有两种取值, 有 或者 没有, 也就对应了决策树的两个分叉。
选择信息增益最大的特征。
实际中特征t可能是一个连续值,我们需要选一个阈值,大于阈值的就等同于t出现, 小于阈值的就等同于t不出现,这个阈值也需要遍历所有的样本集中t的取值来确定。 同样还是两个分叉。 假设有n个特征,m个样本(最坏在每个特征处有m个值, 这样寻找一次最大的信息增益的复杂度是 O(mn) 还是挺大的)
如果有一个样本集是这样
f1 f2 f3
c1 1 0 1
c2 0 1 0
c3 1 1 0
可以算c1 c2之间的相似度, 同样也可以算 f1, f2之间的相似度, 行和列而已, 实际中 c1 c2 c3不可能就一个样本
f1 f2 f3
c1 1 0 1
c1 1 1 1
c2 0 1 0
c2 1 1 0
c3 1 1 0
这时候直接算列的相似度就不好算了, 用互信息就可以,互信息就像是把类别作为一个doc, 特征作为term, 的tf-idf模型,比如f3就很能代表c1, 同样, 用信息增益也可以算。
综合
Wiki : Information gain in decision trees
In information theory and machine learning, information gain is a synonym for Kullback–Leibler divergence. However, in the context of decision trees, the term is sometimes used synonymously with mutual information, which is the expectation value of the Kullback–Leibler divergence of a conditional probability distribution.
In particular, the information gain about a random variable X obtained from an observation that a random variable A takes the value A=a is the Kullback-Leibler divergence DKL(p(x | a) || p(x | I)) of the prior distribution p(x | I) for x from the posterior distribution p(x | a) for x given a.
这篇文章提到互信息可以和 tf-idf 一样作为文档的关键词的权值
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。