本文是关于条件熵的知识拓展。

一、问题:

假定数据库有𝑁个人,第𝑛个人的先验概率γn,有𝐾个问题,假定第𝑛个人对第𝑘个问题答案为“是”的概率为ank,请给出给定第𝑘个问题条件下,数据集的条件熵的计算公式。

二、解析

原来的条件熵公式为:

H(Y|X)=xP(x)H(Y|X=x)

因为此题中X的取值只有两个即‘是’和‘否’,因此公式变为:

H(Y|X)=P(X=是)H(Y|X=是)+P(X=否)H(Y|X=否)

因此先计算对于第k个问题,X=‘是’的样本占总样本的概率P(X=是)和X=‘否’的样本占总样本的概率P(X=否)。

分子为对于第k个问题回答为‘是’的个数即:

i=1N(N×γi×aik)

分母为总数N,因此P(X=是):

P(X=是)=i=1N(N×γi×aik)N

P(X=是)=i=1N(γi×aik)

同理,P(X=否):

P(X=否)=i=1N[N×γi×(1aik)]N

P(X=否)=i=1N[γi×(1aik)]

然后在计算对于第k个问题,X=‘是’的数据集上Y的信息熵和X=‘否’的数据集上Y的信息熵,也就是:

H(Y|X=是)=j=1N(p(xj)logp(xj))

H(Y|X=否)=j=1N(q(xj)logq(xj))

因此要先计算对于第k个问题,X=‘是’的时候,对应每个人‘j’的概率p(xj)

分子为对于第k个问题,X=‘是’的时候,‘j’这个人的个数:

N×γj×ajk

分母为对于第k个问题所有X=‘是’的个数,也就是上述的P(X=是)的分子:

i=1N(N×γi×aik)

或者写为:

P(X=是)×N

因此p(xj)

p(xj)=N×γj×ajki=1N(N×γi×aik)

p(xj)=γj×ajki=1N(γi×aik)

同理X=‘否’的时候,对应每个人‘j’的概率q(xj)

q(xj)=N×γj×(1ajk)i=1N[N×γi×(1ajk)]

q(xj)=γj×(1ajk)i=1N[γi×(1ajk)]

综上所述,可以得出条件熵的最终公式为:

2020-07-27_180446

评论

Powered By Valine
v1.4.14



博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站已成功存活了 1984 天 21 小时 55 分 28 秒